onStop 与 onDestroy
onStop vs onDestroy
我曾尝试研究 activity 何时调用 onDestroy 方法,但我读到了一些令人困惑和相互矛盾的信息。一般来说,我的问题是:在什么情况下 onDestroy 方法实际上是在 activity 上调用的?更具体地说,如果我有两个活动,activity A 和 activity B,如果 activity A 是 运行 并且我创建一个意图并切换到 activity B ,activityA只停了,还是被毁了?
如官方所述documentation:
onDestroy()
在你的 activity 被摧毁之前你接到的最后一个电话。这可能是因为 activity 正在完成(有人在其上调用了 finish() ,或者是因为系统正在临时销毁 activity 的这个实例以保存 space。你可以区分这两个场景用isFinishing()方法。
在您的示例中,Activity A 已停止并可能被系统销毁
注意 根据 documentation
link 以上:
…do not count on [onDestroy()
] being called as a place for saving data … [see] either onPause()
or onSaveInstanceState(Bundle)
.
onDestroy()
被调用时:
- 用户从"recent apps"屏幕中取出activity。
- 用户从"recent apps"屏幕中取出activity。
onStop()
被调用时:
- 用户离开当前activity。
因此在您的示例中,当用户启动 Activity B 时,Activity A 调用 onStop()
。
编辑:
根据文档,onDestroy()
方法并不总是被调用。 onStop()
总是以 Honeycomb 开头调用,因此请将您在 activity 停止之前明确需要执行的代码移动到那里。
Starting with Honeycomb, an application is not in the killable state until its onStop() has returned.
https://developer.android.com/reference/android/app/Activity#ActivityLifecycle
希望对您有所帮助 :D
我曾尝试研究 activity 何时调用 onDestroy 方法,但我读到了一些令人困惑和相互矛盾的信息。一般来说,我的问题是:在什么情况下 onDestroy 方法实际上是在 activity 上调用的?更具体地说,如果我有两个活动,activity A 和 activity B,如果 activity A 是 运行 并且我创建一个意图并切换到 activity B ,activityA只停了,还是被毁了?
如官方所述documentation:
onDestroy()
在你的 activity 被摧毁之前你接到的最后一个电话。这可能是因为 activity 正在完成(有人在其上调用了 finish() ,或者是因为系统正在临时销毁 activity 的这个实例以保存 space。你可以区分这两个场景用isFinishing()方法。
在您的示例中,Activity A 已停止并可能被系统销毁
注意 根据
documentation
link 以上:
…do not count on [onDestroy()
] being called as a place for saving data … [see] eitheronPause()
oronSaveInstanceState(Bundle)
.
onDestroy()
被调用时:
- 用户从"recent apps"屏幕中取出activity。
- 用户从"recent apps"屏幕中取出activity。
onStop()
被调用时:
- 用户离开当前activity。
因此在您的示例中,当用户启动 Activity B 时,Activity A 调用 onStop()
。
编辑:
根据文档,onDestroy()
方法并不总是被调用。 onStop()
总是以 Honeycomb 开头调用,因此请将您在 activity 停止之前明确需要执行的代码移动到那里。
Starting with Honeycomb, an application is not in the killable state until its onStop() has returned. https://developer.android.com/reference/android/app/Activity#ActivityLifecycle
希望对您有所帮助 :D