Наблюдатель 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 из-за недостающих деталей, но вы уже можете проверить эти пункты.

Другие вопросы по тегам