android - 如何强制调用 onSaveInstanceState

标签 android onrestoreinstancestate

我在我的 android Activity 中实现了 onSaveInstanceStateonRestoreInstanceState

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

显然我可以调用该方法,但它没有提供正确的 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/

相关文章:

android - 如何在 android studio 中将 gradle 更新到 3.4.1

Android自定义复合 View 保存和恢复状态不起作用

android - 从第二个 Activity 返回后调用 onCreateView

android - 动态更改 src 后保存 Android 图像状态

android - 将一项对齐到 ActionBar 的左侧

java - 有没有比为 Livedata 更新 View 自行分配值更好的方法?

java - 如何在Android上使用Retrofit解析json数据

android - Robospice 使用 SpringAndroidSpiceRequest 上传文件

android - 何时使用 getSharedPreferences 与 savedInstanceState?

android - 如何在另一个显示帖子详细信息的 Activity 中按背面的交错网格布局获得相同的滚动位置