android - Stashed Activity 意味着 Activity 对象不存在?

标签 android lifecycle

enter image description here

我正在看 big nerd ranch 的“Android Programming”中的这个页面,我对下面的句子感到困惑。它声明“当 Activity 被隐藏时, Activity 对象不存在”。这让我感到困惑,因为当我打开一个应用程序并按下主页按钮时,会调用 onPause() 并且 Activity 达到“暂停”状态,其 Activity 隐藏在操作系统中,如图所示。它一定仍在后台运行,因为当我按下主页按钮时没有调用 onDestroy() 。事实上,当我打开我的任务管理器时,我可以看到当我按下主页按钮时 Activity 的样子。 “Activity 对象不存在”到底是什么意思?什么时候在后台明显处于暂停状态?

最佳答案

他们的文档看起来有点错误和困惑。官方 Android 文档没有谈论“隐藏”状态,它是文档中的 block “App process killed”here

基本上,仅从 STOPPED 状态开始,操作系统可能会随时破坏您的 Activity 。如果这样做,将调用 onSaveInstanceState。 Activity 变量将无效。在任何时候,它可能会重新创建一个新的 Activity 并在其上调用 onCreate 然后 onRestoreInstanceState,传入您之前保存的 Bundle,以重新创建该 Activity 。

关于android - Stashed Activity 意味着 Activity 对象不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34801108/

相关文章:

android - 3rd-party Gradle 插件可能是原因

java - 获取非 Activity 类的 onActivityResult (Android)

android - 有什么理由不在 Fragment.onCreateView() 的 Fragment View 中将监听器附加到小部件?

elasticsearch - 基于索引名称的Elasticsearch索引生命周期管理

android - 查看 Android 源代码,特别是围绕 Activity 和服务生命周期

android - 使用选择器,形状不会出现在 ImageButton 上

android - 通过 Mediacodec 再次解码视频和编码得到一个损坏的文件

java - Android HTTP 获取旧库

ios - 是否可以从 main() 调用 SKReceiptRefreshRequest?

android - 重启时重新验证 - Android