我在我的Android活动中实施了onSaveInstanceState
和onRestoreInstanceState
。
这些似乎工作正常,但我想在某些事情发生时明确保存实例状态(例如,当用户按下按钮时)以防应用程序崩溃,或者我通过调试器终止它
我可以明显地调用该方法,但是它没有提供正确的Bundle或其他任何东西。
我环顾四周,但我看不到任何办法。有可能吗?
如果没有,任何人都可以提供一个体面的解决方案,以便在崩溃/终止时在特定点保存活动状态吗?
由于
答案 0 :(得分:3)
捆绑包只存储在内存中,这意味着即使您设法将数据放入捆绑包中,如果您的应用程序崩溃,它也会消失。
我建议您使用onSaveInstanceState
来设计它 - 在活动过程中恢复Activity
状态。如果您想要保留一些信息,以便在应用崩溃时不会丢失,则应使用其中一个持久性storage options。
理想情况下,您将拥有要显示的数据的模型类。您可以使用SQLite和一些DAO library来保留模型。执行此操作后,您可以在Activity
的onCreate中从数据库中恢复。
根据信息的复杂程度,您还可以选择Shared Preferences。如果您只有几个键值对,这是一个不错的选择,您不必使用模型。