是否保证调用Activity.onStop()(API 11 +)

Vil*_*lla 14 activity-lifecycle android-activity

从文档中(至少对我来说)不清楚是否保证调用Activity.onStop.有两个地方看似矛盾的信息.

  1. Activity.onStop的Javadoc:

请注意,在内存不足的情况下,可能永远不会调用此方法,在这种情况下,系统没有足够的内存来保持活动进程在调用onPause()方法后运行.

  1. 活动类http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle的文档(特别是"Killable"列):

从Honeycomb开始,应用程序在其onStop()返回之前不处于killable状态.这可能会在调用onSaveInstanceState(Bundle)时产生影响(可以在onPause()之后安全地调用它,并允许和应用程序安全地等到onStop()以保存持久状态.

找到两种文件都说实话的方式有点困难.我能想到的唯一场景是:假设您正在使用目标API 21(使用min sdk 10)进行开发,并使用onStop()方法编写Activity.如果您随后在API 10手机上运行此应用程序,则无法保证调用onStop().这种情况意味着上述第1点和第2点的文档都是正确的.否则,其中一个必须是假的.

Phi*_*o99 1

如果您进一步查看ActivityLifeCycle 参考,它会显示:

对于那些没有标记为可杀死的方法,从该方法被调用到返回后,该活动的进程不会被系统杀死。因此,活动处于可终止状态,例如,在 onPause() 之后到 onResume() 开始之间

由于这似乎强化了第 1 点,因此我会犯保守的错误,并设计和规划我的代码,就好像第 1 点是正确的,而忽略第 2 点。