【问题标题】:Restore State after process is killed进程被杀死后恢复状态
【发布时间】:2013-01-02 19:21:25
【问题描述】:

我已经实现了 onRestoreInstanceState 和 onSaveInstanceState。当应用程序最小化时(通过按下主页按钮,或者另一个活动在前台),它们都可以成功运行。但是,当我最小化应用程序并终止进程(通过打开当前进程列表并结束该进程)时,应用程序不会恢复保存的实例状态。我怎样才能让它恢复那个保存的状态?我最好的选择是使用可序列化将 savedInstanceState 包写入文件(因此将某些内容存储在硬盘驱动器上,而不是 RAM 上),然后从文件中重新加载 savedInstanceState?

【问题讨论】:

    标签: android reload serializable savestate


    【解决方案1】:

    我怎样才能让它恢复保存的状态?

    你不能。这不是保存的实例状态的用途。

    我最好的选择是使用可序列化将 savedInstanceState 包写入文件(因此将某些内容存储在硬盘驱动器上,而不是 RAM 上),然后从文件中重新加载 savedInstanceState?

    您的“最佳选择”是持久性,例如文件、数据库或SharedPreferences。您的具体做法似乎很奇怪。

    已保存的实例状态用于临时信息,例如用户已填写但尚未提交的表单内容。除此之外的任何东西都不属于保存的实例状态,而是属于某种持久数据模型。这与构建 Web 应用程序没有什么不同,您在 DOM 和 JavaScript 变量中的数据不会永远存在,而是需要存储在某个地方(通常在 Web 服务器上)。

    【讨论】:

    • 谢谢,我只是想确认我必须写入文件。
    【解决方案2】:

    答案可能为时已晚,但您可以使用 Android Jetpack 中的SavedStateHandle 保存状态(并且它将在进程终止后继续存在)。

    在此处查看更多信息: https://developer.android.com/topic/libraries/architecture/viewmodel-savedstate

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-08
      • 1970-01-01
      • 1970-01-01
      • 2013-04-07
      相关资源
      最近更新 更多