有两种方法可以改变 MutableLiveData
的值。但是 setValue()
和 postValue()
在 MutableLiveData
之间有什么区别。
我找不到相同的文档。
这是Android的类 MutableLiveData
。
package android.arch.lifecycle;
/**
* {@link LiveData} which publicly exposes {@link #setValue(T)} and {@link #postValue(T)} method.
*
* @param <T> The type of data hold by this instance
*/
@SuppressWarnings("WeakerAccess")
public class MutableLiveData<T> extends LiveData<T> {
@Override
public void postValue(T value) {
super.postValue(value);
}
@Override
public void setValue(T value) {
super.setValue(value);
}
}
原文由 Khemraj Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议
根据文档:
设置值() :
后值() :
总而言之,主要区别在于:
setValue()
方法必须从主线程调用。但是如果你需要从后台线程设置一个值,应该使用postValue()
。