gpt4 book ai didi

android - MutableLiveData 中 setValue() 和 postValue() 的区别

转载 作者:IT王子 更新时间:2023-10-28 23:49:36 29 4
gpt4 key购买 nike

MutableLiveData 的改变值有两种方式。但是 MutableLiveData 中的 setValue()postValue() 有什么区别。

我找不到相同的文档。

这里是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);
}
}

最佳答案

根据文档:

setValue() :

Sets the value. If there are active observers, the value will be dispatched to them. This method must be called from the main thread.

postValue() :

Posts a task to a main thread to set the given value. If you called this method multiple times before a main thread executed a posted task, only the last value would be dispatched.

总而言之,主要区别在于:

setValue() 方法必须从主线程调用。但是如果你需要从后台线程设置一个值,应该使用 postValue()

关于android - MutableLiveData 中 setValue() 和 postValue() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51299641/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com