首先,我阅读了 great explanation of how the activities start, suspend, resume and stop .没问题,但我有另一个问题。
Android reference 中的 Activity 生命周期图告诉我如果我调用另一个 Activity ,调用 Activity 将调用 onPause(),稍后,当另一个 Activity 结束时——调用者将通过 onResume() 恢复。
因此,如果第一个 Activity 是 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()。
这是为什么呢?我是不是误解了什么?
最佳答案
发生这种情况是因为您的 Main Activity 完全从 View 中消失,这会触发 onStop,当您恢复时会触发 OnStart。如果您只是部分隐藏 Main 的 View ,您将只会获得 onResume。
如果您查看图表,在 onPause 和 onStop 之间,会出现“Activity 不再可见”...这就是您遇到的情况。
为了快速引用, Activity 生命周期图形:
关于android - 再次在 Activity 生命周期 : onStart is called when it shouldn't be,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10485392/