我有问题。
当我第一次启动我的Android应用程序时,在主要活动中调用onCreate
和onResume
。但我想只被称为onCreate。
我该怎么办?
答案 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}}方法。这可能是你一直在寻找的。 p>
答案 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进行测试。