有两种方法可以使变化值MutableLiveData
。但有什么区别setValue()
& postValue()
in MutableLiveData
.
我找不到相同的文档。
这里是班级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);
}
}
根据文档:
设定值():
设置值。如果有活跃的观察者,该值将为
派遣给他们。该方法必须从主线程调用。
后值():
将任务发布到主线程以设置给定值。如果在主线程执行已发布任务之前多次调用此方法,则只会调度最后一个值。
总而言之,主要区别是:
setValue()
方法必须从主线程调用。但是如果您需要从后台线程设置一个值,postValue()
应该使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)