ViewModel с поддержкой сопрограмм с живыми данными не работает в Lifecycle Service - PullRequest
0 голосов
/ 08 апреля 2020

Я впервые использую сопрограммированную 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 в моем сервисе. Я пытаюсь понять, что я могу делать неправильно.

...