当前位置: 首页 > 知识库问答 >
问题:

为什么LiveData有一个单独的MutableLiveData子类?

隗瑞
2023-03-14

一般来说,这样一种继承形式(增加某些方法的可见性是唯一的改变)是一种众所周知的实践吗?它可能有用的一些场景是什么(假设我们可以访问所有的代码)?

共有1个答案

井宪
2023-03-14

在LiveData-Android Developer文档中,您可以看到对于LiveDatasetValue()PostValue()方法不是公共的。

然而,在MutableLiveData-Android Developer文档中,您可以看到,MutableLiveData在内部扩展了LiveData并且LiveData的两个神奇方法在其中公开可用,它们是SetValue()PostValue()

setvalue():设置值并将该值分派给所有活动的观察者,必须从主线程调用。

PostValue():将任务发布到主线程以覆盖SetValue()设置的值,必须从后台线程调用。

因此,livedata是不可变的。MutableLiveDataLiveData,它是可变的和线程安全的。

 类似资料: