【问题标题】:Is it correct that onStart() is the best place to determine "user has re-opened the app"?onStart() 是确定“用户已重新打开应用程序”的最佳位置是否正确?
【发布时间】:2014-08-07 09:04:41
【问题描述】:

假设一个用户正在使用我的 Android 应用,我有一个 DialogFragment YourTanks

(它显示了你拥有的各种坦克!)

public class YourTanks extends DialogFragment implements View.OnClickListener

同样,用户实际上是在看那个“页面”,看到他们的坦克等等。

他们接到一个电话或决定使用其他应用程序,可能是他们的日历、电子邮件等。

请注意,当然,我的应用程序并没有退出,它仍在 b/g 中运行

他们完成了另一个应用程序。在 Android 的主屏幕或应用程序屏幕上,他们单击我的应用程序的图标。现在,我的应用再次出现,他们可以再次看到他们五颜六色的坦克等。

所以 - 我想知道他们已经打开该应用,我希望 YourTanks 对此保持警惕。

@Override
public void onStart ()
    {
    super.onStart();
    Utils.Log("WE ARE IN onStart !!========");
    Utils.Log("I think this means the user just 'opened' or 'reopened' the app.");
    Utils.Log("Better ask on SO though.");
    }

确实,这是完成我所描述的事情的最佳方式,或者,您是否必须在(可能/)活动级别或其他概念上做某事?

令人惊讶的是,我真的找不到任何关于此的信息

(请注意,例如,在 iPhone 上,您或多或少会在整个应用程序单例中使用 -(void)applicationDidBecomeActive:(UIApplication *)application 之类的东西。)

感谢您提供有关这方面的任何决定性信息!

【问题讨论】:

    标签: android android-dialogfragment application-state


    【解决方案1】:

    您需要 onResume 代替,该活动可能只是在重新打开应用程序时暂停, 这个函数也是在onCreate之后调用的。

    http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle 这是文档如何调用和工作。

    【讨论】:

    • 信息量大,我会点击一次赏金。谢谢!如果你想知道 iPhone 的屏幕有多宽,可以问我 :)
    • 如果我遇到了我找不到的问题,我会记得问你;)。
    猜你喜欢
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2015-11-01
    • 1970-01-01
    • 2023-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多