我在MutableLiveData
中有一个关于Viewmodel
的问题。 setValue
的{{1}}功能是否会触发观察?如果我们将MutableLiveData
的内容更改为MutableLiveData
,是否可以触发?
答案 0 :(得分:1)
我对此表示怀疑。仅以下方法将事件调度到可观察对象:
liveData.postValue("a");
liveData.setValue("b");
https://developer.android.com/reference/android/arch/lifecycle/MutableLiveData
答案 1 :(得分:0)
example
和colspan
都将触发事件。唯一的区别是setValue()
也可以从后台线程触发观察事件。而postValue
必须在主线程中调用。
postValue()
胜过setValue
。
答案 2 :(得分:0)
仅当您调用setValue
或postValue
时才会触发。如果您使用Kotlin,则可以编写一个扩展名来触发LiveData
:
fun <T> MutableLiveData<T>.trigger() {
value = value
}
然后您可以简单地致电:
mutableLiveData.trigger()