3

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

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

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

我环顾四周,但我看不到任何方法可以做到这一点。可能吗?

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

谢谢

4

1 回答 1

3

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

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

理想情况下,您将拥有所显示数据的模型类。您可以使用 SQLite 和一些DAO 库来持久化模型。当你这样做时,你可以在你的Activity.

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

于 2016-03-17T00:56:25.267 回答