1.首先LiveData其实与数据实体类(POJO类)是一样的东西,它负责暂存数据.
2.其次LiveData其实也是一个观察者模式的数据实体类,它可以跟它注册的观察者回调数据是否已经更新.
3.LiveData还能知晓它绑定的Activity或者Fragment的生命周期,它只会给前台活动的activity回调(这个很厉害).这样你可以放心的在它的回调方法里直接将数据添加到View,而不用担心会不会报错.(你也可以不用费心费力判断Fragment是否还存活)
LiveData与MutableLiveData区别
==========================
LiveData与MutableLiveData的其实在概念上是一模一样的.唯一几个的区别如下:
1.MutableLiveData的父类是LiveData
2.LiveData在实体类里可以通知指定某个字段的数据更新.
3.MutableLiveData则是完全是整个实体类或者数据类型变化后才通知.不会细节到某个字段
LiveData简单使用Demo
================
创建LiveData
public class DemoData extends LiveData {
private int tag1;
private int tag2;
public int getTag1() {
return tag1;
}
public void setTag1(int tag1) {
this.tag1 = tag1;
postValue(this);
}
public int getTag2() {
return tag2;
}
public void setTag2(int tag2) {
this.tag2 = tag2;
postValue(this);
}
}
很简单,只要继承LiveData并且在泛型里写下你的实体类,**唯一需要注意的,postValue(this);**这个方法是用于回调数据更新的方法. 你可以在你需要被观察的数