如何强制调用onSaveInstanceState

时间:2016-03-17 00:17:53

标签: android onrestoreinstancestate

我在我的Android活动中实施了onSaveInstanceStateonRestoreInstanceState

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

我可以明显地调用该方法,但是它没有提供正确的Bundle或其他任何东西。

我环顾四周,但我看不到任何办法。有可能吗?

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

由于

1 个答案:

答案 0 :(得分:3)

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

我建议您使用onSaveInstanceState来设计它 - 在活动过程中恢复Activity状态。如果您想要保留一些信息,以便在应用崩溃时不会丢失,则应使用其中一个持久性storage options

理想情况下,您将拥有要显示的数据的模型类。您可以使用SQLite和一些DAO library来保留模型。执行此操作后,您可以在Activity的onCreate中从数据库中恢复。

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