【问题标题】:PreferencesFragment and MVVM architecturePreferencesFragment 和 MVVM 架构
【发布时间】:2018-08-24 13:32:15
【问题描述】:

在我的应用程序中,我使用 ViewModels 为视图提供数据,并使用数据存储库为 viewmodel 提供数据并处理与数据源的通信,例如数据库、互联网 API 和首选项。

现在 android 使用特殊的 Fragment 来处理设置。这些特殊片段通过直接写入 sharedPreferences 来处理设置数据。所以它们不符合 MVVM 架构。我还从 API 读取数据,从中提取一些初始设置数据并将其保存在自己的偏好文件中。用户应该能够在一定限度内更改提取的数据。所以我使用的是键值对,但只是在另一个文件中。这种分离使我可以在不丢失其他数据的情况下删除提取的数据,例如因为 accesstoken 被删除而将用户从应用程序中注销。

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

【问题讨论】:

    标签: android mvvm settings


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-07-18
      • 2016-06-29
      • 2013-05-14
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 2021-04-30
      • 2017-09-01
      • 2020-02-17
      相关资源
      最近更新 更多