问题描述
我有应用程序,我想调用进程死亡,然后恢复应用程序的最后状态。在我的模拟器和实际设备中测试它时,它按预期工作(使用 ADB,强制终止进程,如下所示),并且能够成功恢复应用程序的最后状态。
问题是,如果我将应用程序留在后台 20-30 分钟,然后将其置于前台,则状态不会恢复!据我所知,这是进程死亡发生的正常方式。所以使用ADB和强制进程死亡是可以恢复状态的,但是使用正常的方式当应用程序在后台停留太长时间后系统杀死应用程序时,状态不会恢复!这发生在实际设备中 [“华为 Y6 II” - Ram 2GB,Android 6.0 版]。
为了强制应用程序终止进程,我使用了使用 ADB 的通用方法
-
转到 C:\Users\your_username\AppData\Local\Android\Sdk\platform-tools
-
打开CMD,在位置区输入cmd
-
将应用置于后台
-
查找设备并显示现有进程
adb 设备
adb -s your_device_id shell
ps -A | grep com.slaviboy.your_application_name -
杀死进程
我杀了 com.slaviboy.your_application_name
-
将应用程序置于前台(应用程序应重新加载)
为了保存和恢复应用程序的状态,我在方法 onCreate() 和 onSaveInstanceState() 中使用了包
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
savedInstanceState?.let {
// restore state here
}
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
// save state here
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)