首先,我读过great explanation of how the activities start, suspend, resume and stop。没关系,但我有另一个问题。
Android reference中的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.
这是图表所说的。但我的Main首先获取onStart(),然后是onResume()。
为什么?我误解了什么吗?
答案 0 :(得分:5)
这种情况正在发生,因为您的Main活动完全从视图中消失,触发onStop,当您恢复时触发OnStart。如果您只是部分隐藏了Main的视图,那么您只能获得onResume。
如果你看一下onPause和onStop之间的图表,就会出现“活动不再可见”......这就是你所遇到的。
快速参考,活动生命周期图:
答案 1 :(得分:1)
主要应用程序调用{{1}}的一个原因是您的主要活动正在停止。那就是它被调用onStart()
。在此方案中,首先会调用onStop()
,然后调用onStart()
。