java - 在不使用数据库的情况下跨活动和片段持久化数据的最佳方法是什么?
问题描述
我正在尝试使用单例设计模式跨活动和片段保留对象列表,但在某些时候,我认为当一个进程或活动因内存资源而被 Android 销毁时,单例对象被销毁并且我的应用程序崩溃. 我遇到过这个帖子:
并引用:
我认为一个新的顶级活动是在一个新的过程中进行的(在 http://developer.android.com/reference/android/app/Activity.html#ProcessLifecycle的行之间阅读)。
Android 更有可能杀死存在于后台的 Activity 进程,这包括顶级 Activity 落后于另一个 Activity 时。
我认为一个更好的解决方案可能是让你的 Singleton 透明地初始化自己,如果需要的话,从磁盘加载和保存任何状态(一个非常标准的单例范例)。没有办法通过跨新旧活动的单个实例来解决您的问题。
如果没有重新初始化数据库中数据的潜力,是否无法确保跨活动和片段的数据持久性?
解决方案
Shared Preferences 最适合存储您的应用程序数据。您可以尝试从这里开始https://www.tutorialspoint.com/android/android_shared_preferences.htm
推荐阅读
- python - 根据 ID 创建购买功能
- keycloak - WebSessions 不显示使用 Spring Session 和 Keycloak 的复制行为
- c# - 如何 orderBy 动态地,基于导航属性
- c++ - 我想制作一个 QString 格式的 C++ 枚举来显示 QTime
- node.js - 在我更新由 2 个图像组成的表单的代码中获取“无法读取未定义错误的属性”。(MERN)
- objective-c - 为什么 [NSCursor IBeamCursor] 为空?
- amibroker - 月函数及其在Amibroker代码中的理解
- python - 如何根据多个条件创建新变量?
- linux - 如何从linux中的大文件中删除特定列中的几个字符/数字
- javascript - 脚本输出高度不一致