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
LiveData
,并将更改通知ViewModel
ViewModel
中,获取更改后的LiveData
并相应地更新视图的其他LiveData服务
但是,我想知道,如果从
服务
到视图模型
或者甚至从服务
到存储库
到视图模型亲自进行更直接的沟通,是否没有更好的解决方案,我还没有机会实现这样的场景,但如果这个答案可以帮助您理解正确的实现。解决这个问题可能会有技术上的困难,但我会在这里帮助您。我仍然无法说出最佳流程。但是现在我发现,在viewmodel中使用Transformations.map()
可以代替使用步骤5和6。