我第一次使用协程感知的ViewModel,因此如果这是一个基本问题,请原谅我。
我有一个ViewModel,它正在进行API调用并在liveData中发出结果。
MainViewModel.kt
val retailersLiveData = liveData(Dispatchers.IO) {
val retailers = repository.getRetailers()
emit(Resource.loading(null))
emit(retailers)
}
我还有一个LifecycleService,它正在观察liveData。
AvailabilityService.kt
override fun onCreate() {
super.onCreate()
viewModel = MainViewModel()
}
fun getRetailers() {
viewModel.retailersLiveData.observe(this, Observer {
when (it.status) {
Status.SUCCESS -> {
it.data?.retailers?.forEach {
//do something
}
Log.d("retailers", ""+it.data)
}
Status.ERROR -> { Log.e("error retailers", ""+it.message) }
Status.LOADING -> {}
}
})
}
我从没从服务中获得实时数据的发射值。我试图了解我可能做错了什么。