ObjectBox[七] 支持LiveData(Android体系结构组件)
来源:互联网 发布:通信网络与信息技术 编辑:程序博客网 时间:2024/06/01 08:10
ObjectBox[一] 特性
ObjectBox[二] 教程:如何开始使用ObjectBox
ObjectBox[三] 教程:安装和基础
ObjectBox[四] 数据库持久化之实体注解
ObjectBox[五] 基本操作:查询
ObjectBox[六] 数据监听和RX(Data Observers and Reactive Extensions)
ObjectBox[七] 支持LiveData(Android体系结构组件)
ObjectBox[八] 关系
ObjectBox[九] 数据模型变更
ObjectBox[十] 自定义类型
ObjectBox[十一] 事务
ObjectBox[十二] Meta Model, IDs, and UIDs
ObjectBox[十三] 数据调试
ObjectBox 1.2.0以后开始支持LiveData。Demo 请查看GitHub。
作为ObjectBox的观察者和RX的备选方案,您可以选择由Android Architecture Components提供的LiveData方法。ObjectBox附带了 ObjectBoxLiveData
,这是一个在ViewModel
类中使用的类。
在我们的Demo中我们实现了一个简单的ViewModel
:
public class NoteViewModel extends ViewModel {
public class NoteViewModel extends ViewModel { private ObjectBoxLiveData<Note> noteLiveData; public ObjectBoxLiveData<Note> getNoteLiveData(Box<Note> notesBox) { if (noteLiveData == null) { // query all notes, sorted a-z by their text noteLiveData = new ObjectBoxLiveData<(notesBox.query().order(Note_.text).build()); } return noteLiveData; }}
我们通过传参的方式获取notesBox
,当然你在anroid中也可以使用((App) getApplication()).getBoxStore().boxFor()
。
不过,第一种方法的好处是我们的ViewModel没有引用Android类。这使得单元测试更容易。
现在,在创建Activity或fragment 时,我们得到ViewModel,访问它的LiveData并最终注册以观察更改:
NoteViewModel model = ViewModelProviders.of(this).get(NoteViewModel.class);model.getNoteLiveData(notesBox).observe(this, new Observer<List<Note>>() { @Override public void onChanged(@Nullable List<Note> notes) { notesAdapter.setNotes(notes); }});
观察者一旦订阅,ObjectBoxLiveData就会开始查询,并在查询结果发生变化时通知观察者。在此示例中,如果添加或删除注释,则会通知acticity。如果所有观察者被销毁,LiveData将取消对查询的订阅。
如果你以前使用过ObjectBox observers
,这听起来很熟悉。ObjectBoxLiveData只是对DataObserver进行了一层封装而已。
原文:http://objectbox.io/documentation/livedata/
- ObjectBox[七] 支持LiveData(Android体系结构组件)
- Android架构组件之LiveData
- android LiveData
- Android架构组件(二)——LiveData
- LiveData
- [译]Android架构组件 – 查看Room和LiveData – 第一部分
- ObjectBox
- Android Architecture Component之LiveData
- Android LiveData简介(一)
- android sqlite && greendao objectbox [记录]
- Android Architecture Components应用架构组件源码详解(基于1.0以上)(第二篇ViewModel和LiveData)
- 谷歌官方Android应用架构库——LiveData
- 谷歌官方Android应用架构库——LiveData
- Android 四大组件学习之Activity七
- Android 四大组件学习之Service七
- oracle 体系结构(七)
- 初识LiveData
- Github开源Android组件资源整理(七)其他组件
- POJ3009题解
- JavaScript 面向对象编写方式
- 利用反射分析类的能力,使用反射分析对象
- Qt写文件的缓存buffer大小与编码格式
- 关于在Spring容器外调用bean
- ObjectBox[七] 支持LiveData(Android体系结构组件)
- 记录好文章
- 1023. Have Fun with Numbers (20)
- 图像特征点检测算法之——SURF算法(与SIFT算法的性能)
- 5.3 判断三角形
- php对json字符串的解析以及 php后台和前台js的交互
- 输入班级成绩 求出不及格人数
- Android 自定义viewGroup
- 总结:如何用位操作来简单有效的解决问题