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



我试图坚持使用单例设计模式跨活动和片段的对象列表,但在某些时候,我认为当一个进程或活动被Android销毁,因为内存资源,单例对象被销毁,我的应用程序崩溃。我看到了这篇文章:

如何让Android's的单例对象持久化

和引语:

我认为一个新的顶层活动是在一个新的进程(阅读)中产生的在字里行间http://developer.android.com/reference/android/app/Activity.html ProcessLifecycle)。

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

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

是否没有办法确保跨活动和片段的数据持久性,而不需要从数据库重新初始化数据?

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

  • 选项1:共享首选项
  • 选项2:使用全局常数

如果你想在应用程序关闭后获得数据,你可以选择选项1应用程序关闭后,不需要数据,您可以选择选项2