android - NetworkBoundResource 连续调用
问题描述
我有一个基于 kotlin 中的 Android 架构组件的项目。我在存储库中使用了一个经典的抽象 NetworkBoundResource,它将 LiveData 返回给 ViewModel。
在 viewModel 中,我像这样调用存储库方法并将 livedata 绑定到 MediatorLiveData
repository.login(LoginInput(username, password)).apply {
bindObserver(_loginToken, this)
}
protected fun <R> bindObserver(observer: MediatorLiveData<R>?, source: LiveData<R>) {
observer?.apply {
addSource(source) {
postValue(it)
}
}
}
登录完成后,我必须按顺序调用 3 个 WebService(因此存储库中的 3 个方法返回 LiveData 变量)。可以在一个等待实时数据响应的协程中执行此操作吗?
这就是我想要做的(如果可能的话,都在视图模型中):
login
wait for data
get a parameter for the response
call another ws
wait for response
call another ws
wait for response
call another ws
wait for response
update LiveData in ViewModel (observed in Fragment)
解决方案
推荐阅读
- java - 自定义格式字符串:双括号中的参数 java
- sql - 使用不同表的多个 id 的最大日期
- ruby-on-rails - Rails 5:检测浏览器语言
- javascript - 单击amcharts的甘特条形图无法获取参数值
- c# - 重启失败时终止进程
- java - 使用 selenium web driver java 验证电子商务网站中的排序顺序
- regex - Angular 响应式表单模式验证器将 $ 添加到正则表达式并破坏验证
- mysql - MySQL 服务器当前处于脱机状态,并出现 Cpanel 错误
- python - 如何使用 pcolormesh 获得对数自定义色标?
- ios - swift:可以同时下载的文件数