Android onCreate onResume

时间:2011-05-30 11:27:09

标签: android oncreate onresume

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

我该怎么办?

4 个答案:

答案 0 :(得分:42)

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

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

private boolean resumeHasRun = false;

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

答案 1 :(得分:12)

正确答案是使用Activity的{​​{1}}方法。这可能是你一直在寻找的。

答案 2 :(得分:1)

您无法执行任何操作,因为这是活动生命周期的工作方式。

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

答案 3 :(得分:1)

正如您在API中所看到的,Activity Lifecycle在显示活动之前始终调用onResume。 http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

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

应该可以工作,但我不知道它是否可以更简单地处理,我无法访问这里的sdk进行测试。