Наблюдатель LiveData не запускается в Котлине
Я использую LiveData с Kotlin в моем проекте.
Я столкнулся с периодически возникающей проблемой, когда Observer, присоединенный к объекту MutableLiveData, иногда не запускается.
Observer присоединяется в действии onCreate() (с активностью в качестве владельца жизненного цикла) к объекту LiveData в ViewModel.
Создание экземпляра ViewModel:
mViewModel = ViewModelProviders.of(this).get(MyViewModel::class.java)
Настройка наблюдателя:
mViewModel.mGoogleDirectionResponse.observe(this, Observer {
it-> drawRouteonMap(it)
})
Объект LiveData инициализируется в конструкторе класса ViewModel.
Обратите внимание, что это периодически возникающая проблема, которая возникает не каждый раз, т. Е. Более половины времени она работает точно так, как ожидается.
Я что-то не так делаю? Есть ли лучшая практика для этой реализации, которую вы можете порекомендовать?
1 ответ
Предполагая, что mGoogleDirectionResponse является объектом LiveData, он должен иметь наблюдателя. Также вы должны вызвать postValue (или setValue), чтобы вызвать onChange. К сожалению, я не могу рассказать вам больше о вашей ViewModel из-за недостающих деталей, но вы уже можете проверить эти пункты.