【问题标题】:Local/Remote DataSource in Android MVVM with Repository pattern具有存储库模式的 Android MVVM 中的本地/远程数据源
【发布时间】:2021-09-16 13:11:46
【问题描述】:

我正在尝试实现here 中描述的 MVVM+Repository 模式,并且我想同时将本地文件和 Web 服务器数据缓存到 SQL DB 中。 (我的目标是 ViewModel

在当前状态下,当 ViewModel 请求存储库返回数据时,存储库从 SQL DB 返回缓存的数据,如果缓存无效,则从 RemoteDataSource(Retrofit) 刷新。 我目前正在使用 ContentResolver Cursor 收集本地文件列表并为本地文件创建了一个 DataSource,并且我成功地分别添加了本地和 Web 数据。 但是,我很困惑 ContentResolver 扫描器在这个架构中应该放在哪里。 我应该把这个类当作一个本地数据源吗?还是远程数据源?

Repository.kt

class Repository(
    //Injected from Hilt
    val localDataSource: LocalDataSource,
    val remoteDataSource: RemoteDataSource,
    val localFileDataSource: RemoteDataSource,
    ) {  //caching code }

structure

【问题讨论】:

    标签: android kotlin mvvm


    【解决方案1】:

    基础知识:

    • 存储库的作用是提供来自不同数据源的数据,主要是本地和远程。
    • 内容提供程序是 android 框架的一部分,允许我们在不同应用程序之间共享数据。

    ContentProvider 可以与本地存储库处于同一级别。创建一个数据源,该数据源将发出您感兴趣的内容提供者数据并将对象注入本地存储库。

    奖金: 您可以找到示例应用程序here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多