Service 和 ViewModel 之间的 MVVM 通信

Ger*_*rke 5 android android-service android-mvvm android-architecture-components

我有一个Service每秒通过 http 请求加载数据的程序。

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

我能想到的解决方案是:

  1. View调用方法来自ViewModel
  2. ViewModel调用方法来自Repository
  3. 启动ServiceRepository传入 some LiveData,因为存储库应该负责数据加载。
  4. LiveDataServicevia中更新此内容postValue()
  5. 在 UI 中观察这一点LiveData并通知ViewModel更改
  6. 获取ViewModel更改LiveData并相应更新视图的其他 LiveData
  7. Service根据步骤 6 的结果停止

但是,我想知道是否有更好的解决方案可以更直接地从ServiceViewModel甚至从ServiceRepository进行通信ViewModel