Jetpack---LiveData

1.livedata 是一个可被观察的数据容器类,可将数据包装起来,是数据成为被观察者,当数据发生变化的时候能够让观察者得到通知,使用不需要自己实现观察者模式,livedata内部已经实现好。同时livedata具有生命感知能力,可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。页面处于(Lifecycle.State.ON_STARTED或Lifecycle.State.ON_RESUME)页面能够收到livedata的通知,若页面被销毁(Lifecycle.State.ON_DESTROY)时,Livedada会清除与页面的关联,避免大声内存泄漏问题

2.使用方法:livedata是一个抽象类 不能直接使用 可以直接使用子类MutableLivedata



3.修改LiveData所包装的数据时 通过LiveData.setValue(UI线程中) 和LiveData.postValue(非UI线程)

4.Livedata.observeForever()方法与Livedata.observe()区别,当LiveData所包装的数据发生变化时,无论页面处于什么状态,都会收到通知,所以用完后一定要调用removeObserver()停止观察。否则Activity处于激活状态 不会被系统自动回收。

参考:https://developer.android.google.cn/topic/libraries/architecture/livedata#java

你可能感兴趣的:(Jetpack---LiveData)