在 MVVM Android 中使用共享首选项的最佳实践?

Best practice for using Shared Preferences in MVVM Android?

我一直在寻找在 Android 的 MVVM 体系结构中使用共享首选项的最佳方法,但我只能找到一些片段,因此没有清晰的图像来以最佳方式完成它。因此我有几个问题:

  1. 我应该在应用程序上保留 SharedPrefs 的单例实例吗?
  2. ViewModel 和 Repository 应该使用共享首选项吗?
  3. 在哪里使用它们?假设有一个 Fragment、一个 ViewModel 和一个 Repository。我应该从 ViewModel 控制片段和存储库的 SharedPrefs 还是每个人都应该自己处理?例如。用户单击按钮以保存设置。从片段保存在 SP 中?从 ViewModel 调用方法以保存在 SP 中?或者进一步重定向到 Reposioty 以使用 SP?

(*SP = 共享首选项)

如果能得到一些有关 MVVM 中 SharePreferences 最佳实践的建议,我将不胜感激 Android

这张图很好地代表了 MVVM 结构,在你的情况下你想在你的 localDataSource 中保存一些数据,比如数据库或共享首选项,所以它建议你使用你在存储库级别保存的逻辑并调用它们来自您的 ViewModel 的函数。

如果您使用共享首选项的相同引用,最好将其用作单例,而不是在每次读取或写入时都创建它。