【发布时间】:2017-11-17 22:56:10
【问题描述】:
关于 Android 的 Activity 生命周期,我看到它广泛声称(在 SO 和其他地方)持久数据应该保存在 onPause() 方法中,因为不能保证 onStop() 会被调用,因为操作系统如果系统资源不足,可能需要终止活动以回收其资源。
但是,在我正在阅读的一本书中,情况正好相反:
实际上,操作系统不会回收可见的(暂停或 恢复)> 活动。 活动不会被标记为“可杀死”,直到 onStop() 被调用并完成执行。
[谈论隐藏 状态和活动记录一点]
请注意,您的活动可以在没有 onDestroy() 被调用。 您可以依靠 onStop() 和 onSaveInstanceState(Bundle) 被调用(除非有什么东西消失了 设备上的错误)... 覆盖 onStop() 以保存任何 永久数据,例如用户正在编辑的内容,因为您的 在此方法返回后,活动可能随时被终止。
p70-71,Android 编程:大书呆子牧场指南,第 3 版 (强调我的)
多部分问题:
-
这是(应用程序在 onStop() 之前被杀死的可能性是 被称为)不再真实的东西,并且仍然存在 传播,还是这本书完全错误?
-
Activity 何时或为何会被杀死是否存在细微差别? 回答“有时?”
如果参考官方文档将不胜感激。
【问题讨论】:
-
编辑:添加了有关 onPause() 与 onStop() 保证的其他答案的链接
标签: android android-lifecycle activity-lifecycle