LiveData对象和Observer对象区别
前言
问题引出原因:项目上通过DataBinding的BindingAdapter进行动画资源的替换,发现每次数据回调回来即使相同的数据也会执行一次替换,排查一下才发现是使用MutableLiveData的原因
区别
MutableLiveData
- 当每次重新赋值时就会触发监听:第一次赋值1,第二次再赋值1,赋值进行了两次,LiveData就会调用两次监听
- 通过postValue(任何线程中调用)或者setValue(主线程调用)进行赋值操作
- 通过getValue进行获取值操作
ObservableField
- 进行同样的赋值操作,监听事件只会调用一次
- 通过set方法进行赋值
- 通过get进行获取值操作