我在我的 android Activity 中实现了 onSaveInstanceState
和 onRestoreInstanceState
。
这些似乎工作正常,但我想在某些事情发生时(例如,当用户按下按钮时)显式保存实例状态,以防应用程序崩溃,或者我通过调试器终止它
显然我可以调用该方法,但它没有提供正确的 Bundle 或其他任何东西。
我环顾四周,但我看不出有什么办法可以做到这一点。可能吗?
如果没有,任何人都可以提供一个体面的解决方案来在崩溃/终止的情况下在特定点保存 Activity 状态吗?
谢谢
最佳答案
Bundle 仅存储在内存中,这意味着即使您设法将数据放入 Bundle 中,如果您的应用程序崩溃,它也会消失。
我建议您使用 onSaveInstanceState
来实现它的设计目的 - 在 Activity 进程中恢复 Activity
状态。如果您想保留一些信息以便在应用程序崩溃时它不会丢失,您应该使用持久性 storage options 之一。 .
理想情况下,您应该为要显示的数据创建模型类。您可以使用 SQLite 和一些 DAO library 来持久化模型.当您这样做时,您可以在 Activity
的 onCreate 中从数据库恢复。
根据信息的复杂程度您也可以选择Shared Preferences .如果您只有几个键值对,这是一个不错的选择,而且您不必使用模型。
关于android - 如何强制调用 onSaveInstanceState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36049440/