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);**这个方法是用于回调数据更新的方法. 你可以在你需要被观察的数
发表评论