再次在Activity生命周期中:onStart在它不应该被调用时被调用

Ale*_*aev 4 android android-lifecycle android-activity

首先,我已经阅读了关于活动如何开始,暂停,恢复和停止重要解释.没关系,但我有另一个问题.

Android参考中的Activity生命周期图表明,如果我调用另一个活动,将为调用活动调用onPause(),稍后当另一个活动结束时,调用者将通过onResume()恢复.

因此,如果第一个活动是Main而另一个是Other,则循环看起来像这样(伪代码):

Main.onCreate()
Main.onStart()
Main.onResume()
// Main is running...  Then, the user clicks a button and Other comes in front.
Main.onPause()
Other.onCreate()
// Other's lifecycle goes here... Finally, the user returns back.
Main.onResume()
// Main is running again.
Run Code Online (Sandbox Code Playgroud)

这就是图表所说的.但我的Main首先获取onStart(),然后是onResume().

这是为什么?我误解了什么吗?

Bar*_*rak 5

这种情况正在发生,因为您的Main活动完全从视图中消失,触发onStop,当您恢复时触发OnStart.如果您只是部分隐藏了Main的视图,那么您只能获得onResume.

如果你看一下图表,在onPause和onStop之间,就会出现"活动不再可见"......这就是你所遇到的.

为了快速参考,活动生命周期图形:

在此输入图像描述