繁体   English   中英

Android onCreate onResume

[英]Android onCreate onResume

我有个问题。 当我第一次启动我的 android 应用程序时,在主活动中调用了onCreateonResume 但我只想被称为 onCreate。

我能做些什么?

根据 SDK 文档,您看到的是预期行为。 查看 Activity- Activity Lifecycle文档中的流程图。

以编程方式,您可以通过保持一个实例成员来跟踪之前是否调用过 onResume 来克服这个问题 - 第一次调用它时,设置变量并返回,例如

private boolean resumeHasRun = false;

@Override
protected void onResume() {
    super.onResume();
    if (!resumeHasRun) {
        resumeHasRun = true;
        return;
    }
    // Normal case behavior follows
}

正确的答案是使用ActivityonRestart()方法。 这可能是您一直在寻找的。

你不能做任何事情,因为这就是 Activity 生命周期的工作方式。

有关显示生命周期的图表,请参阅http://developer.android.com/guide/topics/fundamentals/activities.html#Lifecycle

正如您在 API 中看到的那样,活动生命周期总是在显示活动之前调用 onResume。 http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

我想你可以为第一次访问创建一个全局 boolean 并将其设置为 false。 然后覆盖 onResume 并检查变量。 如果为 false,则将其设置为 true 并返回,如果为 true,则调用 super.onResume。

应该可以,但我不知道它是否可以更简单地处理,并且我无法访问 sdk 来测试它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM