android - 退出前存储持久应用程序数据的正确位置是什么?

标签 android

我有一个单独的 Activity 应用程序,它有一个数据容器,该容器在应用程序启动时从一个 JSON 格式的私有(private)文本文件中填充。退出应用程序时,无论是正常退出还是强制退出,都必须将数据写回文本文件。

Android 文档 states应用程序数据不应保存在 onDestroy 方法中。

我现在已经覆盖了以下方法以确保数据在退出时存储:

protected void onStop() {
    persistenceManager.storeIfChanged();
    super.onStop();
}

protected void onPause() {
    persistenceManager.storeIfChanged();
    super.onPause();
}

storeIfChanged 方法将应用程序数据写入文本文件(如果它自上次保存以来发生了更改)。 我的问题是,这是否保证无论应用程序如何终止(除非是不可抗力),应用程序数据都会被保存。 其次,onStop 和onPause 都做saving 是多余的吗?

最佳答案

是的,在onPause 中保存数据是推荐的方式。除非强制关闭应用程序,否则数据将始终被保存。

onPause中调用即可,onPause总是在onStop之前调用。

关于android - 退出前存储持久应用程序数据的正确位置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5556450/

相关文章:

java - 如何在启动时仅对 Android View 进行一次动画处理?

android - TextView.getText().toString() 崩溃

android - GradientDrawable 类的 innerRadiusRatio 和 thicknessRatio 之间存在什么样的联系?

java - 结合setText使用方法(android studio)

java - Android - 更新数组列表时的线程安全

安卓 : parse the json within json object in java

android - 无法将android库上传到JitPack.io。无法应用插件[id 'com.android.internal.version-check']

android - backstack事务后如何持久化 fragment 数据?

android - ImageView 占用太多垂直空间

android - 链接 Firebase C++(分析)库时出错