PreferencesFragment和MVVM体系结构

时间:2018-08-24 13:32:16

标签: android mvvm settings

在我的应用中,我正在使用ViewModels向视图提供数据和数据存储库,以向ViewModel提供数据并处理与数据源的通信,例如数据库,Internet API和首选项。

现在android使用特殊片段来处理设置。这些特殊片段通过直接写入sharedPreferences处理设置数据。因此它们不符合MVVM体系结构。我还从API读取数据,从API中提取一些初始设置数据,并将其保存在其自己的preferencefile中。用户应该能够在一定范围内更改提取的数据。所以我只在另一个文件中使用键,值对。这种分离使我可以删除提取的数据而不会丢失其他数据,例如,由于删除了访问令牌,因此使用户退出了应用程序。

我可以写一个普通的片段来处理设置,但是建议这样做吗?还是有其他方法可以使用android内置设置片段,并仍然根据MVVM架构保持数据分离?

1 个答案:

答案 0 :(得分:0)

了解了大部分内容。实际上,PreferenceFragmentCompat和Preferences隐藏了数据存储的实现,因此符合MVVM体系结构和职责分离。在处理首选项的数据存储库中,可以实现OnPreferenceChangedListener来重新加载首选项,并通过LiveData将首选项提供给视图模型。

为分离我的特殊数据,可能需要编写一个新的preferencedatastore。