Я впервые использую сопрограммированную ViewModel, так что простите, если это базовый c вопрос.
У меня есть 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 -> {}
}
})
}
Я никогда не получаю значение эмиссии liveata в моем сервисе. Я пытаюсь понять, что я могу делать неправильно.