Android onCreate onResume

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

我能做什么?

根据SDK文档,你所看到的是预期的行为。 查看活动 – 活动生命周期文档中的stream程图。

以编程方式,你可以通过保持一个实例成员来跟踪onResume是否被调用过 – 第一次被调用时,设置variables并返回例如

 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

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

应该可以工作,但我不知道是否可以更简单地处理,而且我无法访问这里的sdk来testing它。