系统杀死应用程序后,Android 没有重新打开以前的活动

Posted

技术标签:

【中文标题】系统杀死应用程序后,Android 没有重新打开以前的活动【英文标题】:Android is not reopening previous activity after system has killed app 【发布时间】:2020-08-19 10:51:21 【问题描述】:

我已经为此进行了搜索,但我只能找到遇到相反问题的人 - 他们希望他们的应用重新打开上一个活动,而我试图找出原因我的应用程序在系统将其杀死以获取内存后,每次我重新打开它时,它都会从主要活动开始。

我的问题:我有一个活动,用户创建的数据最终会被持久化。当我在此活动中关闭带有未保存数据的应用程序,然后去打开其他应用程序以便系统需要终止我的应用程序以释放内存时,我正在丢失我的数据。我正在正确使用 onSaveInstanceState/onRestoreInstanceState(当我改变方向或打开省电模式时数据不会丢失),所以我知道我正在正确保存实例数据,问题是 android 没有打开我的应用程序重新启动时的活动,所以我永远没有机会恢复我保存的实例数据。

知道为什么我的应用在系统杀死它之前不会打开我留下的最后一个活动吗?谢谢。

【问题讨论】:

【参考方案1】:

系统杀死你的应用程序后,你在 onSaveInstanceState 中存储的任何内容也会被删除。

要在您的应用被杀死后保存状态,请使用 Shared Preferences 或任何其他适合您需要的 Persistent Storage。

你应该把你的状态保存在onStop 并检查您的onCreate 中的已保存状态,如果有则恢复它

【讨论】:

要添加此内容,请查看此网站developer.android.com/topic/libraries/architecture/…

以上是关于系统杀死应用程序后,Android 没有重新打开以前的活动的主要内容,如果未能解决你的问题,请参考以下文章

在应用程序被杀死并重新启动后,Android 应用程序黑暗主题消失了

回家后重新进入应用程序时如何运行代码(Android)

用户杀死应用程序后,Socket.io android socket.on 不起作用

Android应用程序及其服务在打开某些应用程序后被杀死

Activity 被杀死并重新创建后,碎片仍然存在

通过Jenkins作业后,工作节点上的进程没有被杀死