从文档中(至少对我来说)还不清楚是否保证调用Activity.onStop。有两个地方似乎有矛盾的信息。
请注意,在内存不足的情况下,在调用活动的onPause()方法之后,可能永远不会调用该方法。
从蜂巢开始,应用程序在返回onStop()之前不会处于可杀死状态。当onSaveInstanceState(Bundle)可能被调用时(可以在onPause()之后安全地调用它,并允许和应用程序安全地等待onStop()保存持久状态),这会产生影响。
要找到一种两种文档都在说真话的方法有点费劲。我能想到的唯一场景是:假设您正在目标API 21上开发(使用min 10),并使用onStop()方法编写一个活动。如果然后在API10Phone上运行此应用程序,则不能保证调用onStop()。这个场景意味着上面第1点和第2点的文档都是正确的。否则,其中一个肯定是假的。
发布于 2016-09-14 07:00:11
是否保证调用
Activity.onStop()(API 11 +)
是的,它保证在蜂窝后设备(API 11 +)上调用。
来源1:活动生命周期视频教程-由Google developer倡导者教授
来源2:https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

来源3:AndroidLifeCycle关于www.vogella.com的文章

发布于 2015-07-08 01:49:07
如果你再往下看ActivityLifeCycle参考,上面写着:
对于那些未被标记为可杀死的方法,该活动的进程将不会被系统从调用该方法时开始并在其返回后继续终止。因此,活动处于可杀死状态,例如,在onPause()之后到onResume()的开始之间。
由于这似乎是重新生效点#1,我会错误地在保守的一边,设计和规划我的代码,就好像第1点是真的,忽略了第2点。
https://stackoverflow.com/questions/29395169
复制相似问题