Я просто не могу понять, что не так в этом коде и почему наблюдатель не вызывается при обновлении значения. Я использую Fragement с Liveata и вот полный код. При запуске приложения фрагмент получает значение из данных по умолчанию, которое в данном случае равно 100. Но после обновления значения с использованием метода queueChannelId(channelId)
наблюдатель не вызывается. Я положил оператор печати, и я вижу, что метод выполняется в основном потоке. Пожалуйста, помогите
Фрагмент:
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
viewModel =
ViewModelProviders.of(this).get(SomeViewModel::class.java)
viewModel.getChannelId().observe(this, Observer {
// Only called with default value of mutablelivedata
})
}
Я могу заверить, что onDestroyView и onDestroy никогда не вызывались.
ViewModel:
fun getChannelId() : MutableLiveData<Int> {
return repository.getChannelId()
}
Repository:
var channelIdObservable = MutableLiveData(100)
fun queueChannelId(channelId: Int) {
channelIdObservable.value = channelId
}
fun getChannelId() : MutableLiveData<Int> = channelIdObservable