如何解决如何在协程Kotlin内发送对象?
我开始将协同程序与Kotlin一起使用,我想将片段中的对象作为参数传递,但是我仍然不太了解这个对象如何在此协同程序中发生,我将非常感激您的帮助
val addObject: LiveData<Object> = liveData {
emit(Result.loading())
try {
emit(Result.success(fetchUser()))
} catch(ioException: Exception) {
emit(Result.error(ioException))
}
}
从我的片段中,我必须先发送对象,然后才能观察它
productViewModel.addObject(Object).observe
解决方法
您不能使用甚至没有意义的参数传递对象。
您可能想做的事情就是这样
ViewModel
private val _liveData: MutableLiveData<Object> = MutableLiveData()
val liveData:LiveData<Object>
get() = _liveData
fun addObject(myObject:Object){
// do work here
emit(someData)
}
甚至只是
fun addObject(myObject:Object):LiveData<Object>{
val liveData: MutableLiveData<Object> = MutableLiveData()
viewModelScope.launch {
//do work then emit back
liveData.postValue(it)
}
return liveData
}
活动
viewModel.liveData.observe(this,Observer{
})
viewModel.addObject(myObject)
或者第二个例子
viewModel.addObject(myObject).observe(this,Observer{
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。