【发布时间】:2018-12-18 17:30:25
【问题描述】:
我的问题是,我有一个片段,我有一个菜单并选择一个需要应用于我拥有的每个片段的选项。
例如,在我的个人资料片段中,我需要为用户启用某个团队,该团队将影响每个片段,因为如果我在个人资料片段中选择美国作为团队,我将需要查看信息在我的其他片段中关于那个团队。
我的问题是,用单例做这个更好吗?所以我在我的个人资料中创建了一个选择实例,然后在其他片段中访问它。
这是一个好方法还是我需要以其他方式做到这一点?
【问题讨论】:
-
您最好的选择是将值持久化到 Bundle 中,如果 Activity 是第一个打开且已保存的 Activity 且已保存InstanceState!=null 的情况下将其恢复,并将其放入片段视图中观察到的 MutableLiveData生命周期所有者。
-
我认为 SharedPreferences 是持久化这些数据的最佳方式,因此可以从任何片段或活动中检索它
-
您有多种选择。一些是(1)将其作为单例保存在内存中,(2)将其存储在包含所有
Fragments 的Activity中(假设它们共享一个活动),(3)使用持久存储选项(@987654323 @,一个文件,一个SQLiteDatabase)
标签: java android android-studio android-fragments