首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onStop vs onDestroy

onStop vs onDestroy
EN

Stack Overflow用户
提问于 2015-03-31 04:05:23
回答 2查看 19.3K关注 0票数 13

我试图研究活动调用onDestroy方法的确切时间,但我读到了一些令人困惑和冲突的信息。一般来说,我的问题是:在什么情况下,onDestroy方法实际上是在活动上调用的?更具体地说,如果我有两个活动,活动A和活动B,如果活动A正在运行,并且我创建了一个意图并切换到活动B,那么活动A是只停止了,还是被销毁了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-31 04:09:21

正如官方documentation中声明的那样

代码语言:javascript
复制
onDestroy()

在你的活动被销毁之前你收到的最后一个电话。这可能是因为活动正在结束(有人对其调用finish() ),也可能是因为系统临时销毁了该活动的此实例以节省空间。您可以使用isFinishing()方法区分这两种场景。

在您的示例中,活动A已停止,可能会被系统销毁

以上每个documentation链接的注释

…不要指望将onDestroy()作为保存数据…的位置来调用请参阅onPause()onSaveInstanceState(Bundle)

票数 7
EN

Stack Overflow用户

发布于 2015-03-31 05:14:08

只要执行以下操作,就会调用onDestroy()

  • 用户从“最近的应用程序”屏幕中取出活动。
  • 用户从“最近的应用程序”屏幕中取出活动。

只要执行以下操作,就会调用onStop()

  • 用户离开当前活动。

因此,在您的示例中,当用户启动活动B时,活动A称为onStop()

编辑:根据文档,onDestroy()方法并不总是被调用。onStop()总是以Honeycomb开头调用,因此在活动停止之前,请将您明确需要执行的代码移至此处。

从Honeycomb开始,在返回onStop()之前,应用程序不会处于可终止状态。https://developer.android.com/reference/android/app/Activity#ActivityLifecycle

希望这能有所帮助:D

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

https://stackoverflow.com/questions/29355290

复制
相关文章

相似问题

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