MutableLivedata观察者触发

时间:2018-10-23 18:21:25

标签: android mvvm viewmodel mutablelivedata

我在MutableLiveData中有一个关于Viewmodel的问题。 setValue的{​​{1}}功能是否会触发观察?如果我们将MutableLiveData的内容更改为MutableLiveData,是否可以触发?

3 个答案:

答案 0 :(得分:1)

我对此表示怀疑。仅以下方法将事件调度到可观察对象:

liveData.postValue("a");
liveData.setValue("b");

https://developer.android.com/reference/android/arch/lifecycle/MutableLiveData

答案 1 :(得分:0)

examplecolspan都将触发事件。唯一的区别是setValue()也可以从后台线程触发观察事件。而postValue必须在主线程中调用。 postValue()胜过setValue

答案 2 :(得分:0)

仅当您调用setValuepostValue时才会触发。如果您使用Kotlin,则可以编写一个扩展名来触发LiveData

fun <T> MutableLiveData<T>.trigger() {
    value = value
}

然后您可以简单地致电:

mutableLiveData.trigger()