LiveData观察器未在Kotlin中触发

时间:2018-10-15 12:51:31

标签: android kotlin viewmodel android-livedata mutablelivedata

我在项目中将LiveData和Kotlin一起使用。

我遇到了一个间歇性问题,其中有时未触发附加到MutableLiveData对象的观察者。

观察者附加在活动onCreate()中(以活动为生命周期所有者)在ViewModel中的LiveData对象上。

ViewModel实例化:

mViewModel = ViewModelProviders.of(this).get(MyViewModel::class.java)

设置观察者:

mViewModel.mGoogleDirectionResponse.observe(this, Observer {
            it-> drawRouteonMap(it)
        })

LiveData对象正在ViewModel类的构造方法中初始化。

请注意,这是一个间歇性问题,并非每次都发生,即超过其预期工作时间的一半以上。

我在做错什么吗? 您可以推荐这种实现方法的更好方法吗?

1 个答案:

答案 0 :(得分:0)

假设mGoogleDirectionResponse是一个LiveData对象,它必须具有观察者。另外,您还必须调用postValue(或setValue)来触发onChange。 不幸的是,由于缺少详细信息,我无法再告诉您有关ViewModel的更多信息,但是您已经可以检查这些要点。