微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

进程死亡后恢复应用程序

如何解决进程死亡后恢复应用程序

我有应用程序,我想调用进程死亡,然后恢复应用程序的最后状态。在我的模拟器和实际设备中测试它时,它按预期工作(使用 ADB,强制终止进程,如下所示),并且能够成功恢复应用程序的最后状态。

问题是,如果我将应用程序留在后台 20-30 分钟,然后将其置于前台,则状态不会恢复!据我所知,这是进程死亡发生的正常方式。所以使用ADB和强制进程死亡是可以恢复状态的,但是使用正常的方式当应用程序在后台停留太长时间后系统杀死应用程序时,状态不会恢复!这发生在实际设备中 [“华为 Y6 II” - Ram 2GB,Android 6.0 版]。


为了强制应用程序终止进程,我使用了使用 ADB 的通用方法

  1. 转到 C:\Users\your_username\AppData\Local\Android\Sdk\platform-tools

  2. 打开CMD,在位置区输入cmd

  3. 将应用置于后台

  4. 查找设备并显示现有进程

    adb 设备
    adb -s your_device_id shell
    ps -A | grep com.slaviboy.your_application_name

  5. 杀死进程

    我杀了 com.slaviboy.your_application_name

  6. 将应用程序置于前台(应用程序应重新加载)

enter image description here


为了保存和恢复应用程序的状态,我在方法 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 举报,一经查实,本站将立刻删除。