Android 服务和ViewModel之间的MVVM通信

Android 服务和ViewModel之间的MVVM通信,android,android-service,android-architecture-components,android-mvvm,Android,Android Service,Android Architecture Components,Android Mvvm,我有一个服务,它每秒通过http请求从中加载数据 我想知道如何在我当前的MVVM结构中实现该服务 我能想到的解决办法是: View从ViewModel ViewModel从存储库调用方法 在存储库中启动服务,并传入一些LiveData,因为存储库应该负责数据加载 通过postValue()在服务中更新此LiveData 在UI中观察此LiveData,并将更改通知ViewModel 在ViewModel中,获取更改后的LiveData并相应地更新视图的其他LiveData 根据步骤6的结果停止服

我有一个
服务
,它每秒通过http请求从中加载数据

我想知道如何在我当前的MVVM结构中实现该服务

我能想到的解决办法是:

  • View
    ViewModel
  • ViewModel
    存储库调用方法
  • 存储库中启动
    服务
    ,并传入一些
    LiveData
    ,因为存储库应该负责数据加载
  • 通过
    postValue()
    服务中更新此
    LiveData
  • 在UI中观察此
    LiveData
    ,并将更改通知
    ViewModel
  • ViewModel
    中,获取更改后的
    LiveData
    并相应地更新视图的其他LiveData
  • 根据步骤6的结果停止
    服务

  • 但是,我想知道,如果从
    服务
    视图模型
    或者甚至从
    服务
    存储库
    视图模型

    亲自进行更直接的沟通,是否没有更好的解决方案,我还没有机会实现这样的场景,但如果这个答案可以帮助您理解正确的实现。解决这个问题可能会有技术上的困难,但我会在这里帮助您。我仍然无法说出最佳流程。但是现在我发现,在viewmodel中使用
    Transformations.map()
    可以代替使用步骤5和6。