首页 > 解决方案 > 在不使用数据库的情况下跨活动和片段持久化数据的最佳方法是什么?

问题描述

我正在尝试使用单例设计模式跨活动和片段保留对象列表,但在某些时候,我认为当一个进程或活动因内存资源而被 Android 销毁时,单例对象被销毁并且我的应用程序崩溃. 我遇到过这个帖子:

如何使 Android 的 Singleton 对象持久化

并引用:

我认为一个新的顶级活动是在一个新的过程中进行的(在 http://developer.android.com/reference/android/app/Activity.html#ProcessLifecycle的行之间阅读)。

Android 更有可能杀死存在于后台的 Activity 进程,这包括顶级 Activity 落后于另一个 Activity 时。

我认为一个更好的解决方案可能是让你的 Singleton 透明地初始化自己,如果需要的话,从磁盘加载和保存任何状态(一个非常标准的单例范例)。没有办法通过跨新旧活动的单个实例来解决您的问题。

如果没有重新初始化数据库中数据的潜力,是否无法确保跨活动和片段的数据持久性?

标签: javaandroidsingleton

解决方案


Shared Preferences 最适合存储您的应用程序数据。您可以尝试从这里开始https://www.tutorialspoint.com/android/android_shared_preferences.htm


推荐阅读