【问题标题】:How can I force a call to onSaveInstanceState如何强制调用 onSaveInstanceState
【发布时间】:2016-03-17 00:17:52
【问题描述】:

我已经在我的 android 活动中实现了 onSaveInstanceStateonRestoreInstanceState

这些似乎工作正常,但我想在某些事情发生时(例如,当用户按下按钮时)显式保存实例状态,以防应用程序崩溃,或者我通过调试器终止它

我显然可以调用该方法,但这并没有提供正确的 Bundle 或其他任何东西。

我环顾四周,但看不出有什么方法可以做到这一点。有可能吗?

如果没有,任何人都可以提供一个体面的解决方案来在崩溃/终止的情况下保存特定点的活动状态吗?

谢谢

【问题讨论】:

  • 在共享首选项中保存捆绑包?
  • 您是否尝试过仅将 Bundle 保留为字段?

标签: android onrestoreinstancestate


【解决方案1】:

Bundles 只存储在内存中,这意味着即使您设法将数据放入 Bundle 中,如果您的应用程序崩溃,它也会消失。

我建议您将onSaveInstanceState 用于它的设计用途 - 在活动进程中恢复Activity 状态。如果您想保留一些信息,以便在应用程序崩溃时不会丢失,您应该使用持久性storage options 之一。

理想情况下,您应该为所显示的数据设置模型类。您可以使用 SQLite 和一些 DAO library 来持久化模型。当您这样做时,您可以从Activity 的 onCreate 中的数据库恢复。

根据信息的复杂程度,您还可以选择Shared Preferences。如果您只有几个键值对,这是一个不错的选择,您不必使用模型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    相关资源
    最近更新 更多