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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容