目前尚不清楚(至少对我来说)文档是否保证调用Activity.onStop。有两个地方看似矛盾的信息。
请注意,在内存不足的情况下,可能永远不会调用此方法,在这种情况下,系统没有足够的内存来保持活动的进程在调用onPause()方法后继续运行。
从Honeycomb开始,应用程序在返回onStop()之前不处于killable状态。这可能会在调用onSaveInstanceState(Bundle)时产生影响(可以在onPause()之后安全地调用它,并允许和应用程序安全地等到onStop()以保存持久状态。
找到两种文件都说实话的方法有点困难。我能想到的唯一场景是:假设您正在使用目标API 21(使用min sdk 10)进行开发,并使用onStop()方法编写Activity。如果您随后在API 10手机上运行此应用程序,则无法保证调用onStop()。这种情况意味着上述第1点和第2点的文档都是正确的。否则,其中一个必须是假的。
答案 0 :(得分:10)
保证
Activity.onStop()
被调用(API 11 +)
是的,保证在后蜂窝设备(API 11 +)
上调用来源1:Video tutorial on Activity life cycle - taught by Google developer advocate
来源2:https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle
答案 1 :(得分:0)
如果你向下看ActivityLifeCycle reference,它会说:
对于那些未标记为可计费的方法,系统不会从调用方法开始并在返回后继续执行活动的进程。因此,活动处于可填充状态,例如,在onPause()之后到onResume()的开始之间。
由于这似乎重新强制执行第1点,我会在保守的方面犯错并设计和规划我的代码,好像第1点是真的并忽略第2点。