首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否保证调用Activity.onStop() (API 11 +)

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

Stack Overflow用户
提问于 2015-04-01 15:43:42
回答 2查看 2.8K关注 0票数 17

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

  1. 用于Activity.onStop的Javadoc:

请注意,在内存不足的情况下,在调用活动的onPause()方法之后,可能永远不会调用该方法。

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

从蜂巢开始,应用程序在返回onStop()之前不会处于可杀死状态。当onSaveInstanceState(Bundle)可能被调用时(可以在onPause()之后安全地调用它,并允许和应用程序安全地等待onStop()保存持久状态),这会产生影响。

要找到一种两种文档都在说真话的方法有点费劲。我能想到的唯一场景是:假设您正在目标API 21上开发(使用min 10),并使用onStop()方法编写一个活动。如果然后在API10Phone上运行此应用程序,则不能保证调用onStop()。这个场景意味着上面第1点和第2点的文档都是正确的。否则,其中一个肯定是假的。

EN

回答 2

Stack Overflow用户

发布于 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的文章

票数 14
EN

Stack Overflow用户

发布于 2015-07-08 01:49:07

如果你再往下看ActivityLifeCycle参考,上面写着:

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

由于这似乎是重新生效点#1,我会错误地在保守的一边,设计和规划我的代码,就好像第1点是真的,忽略了第2点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29395169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档