继续完善上次懵懵懂懂的流程.
原理还是一样的.不明白的看一看
Android 使用RxJava+Retrofit +Realm 组合加载数据 <读取缓存 显示 请求网络数据 缓存最新数据 更新界面>(一)
这次整合的是数据库Realm点击查看中文文档感兴趣的可以去看看.
使用Realm的原因是它和Retrofit一样.天生支持Rxjava,当然还有其他的,不过我没用过.
Realm配置 Applaction中 ,如果配置了多进程的话.最好是判断一下包名,防止调用多次
private void initRealm() {
RealmConfiguration realmConfiguration = new RealmConfiguration.Builder(this)
.name("xxx.realm")
.schemaVersion(1)
.rxFactory(new RealmObservableFactory()) //默认Rxjava支持,貌似不写也可以
.deleteRealmIfMigrationNeeded()//测试使用,每次都删除原来的数据
// .encryptionKey(key)
// .modules(new MySchemaModule())
// .migration(migration)
.build();
Realm.setDefaultConfiguration(realmConfiguration);
}
Realm 配合Rxjava查询方法,官方文档配置
// Combining Realm, Retrofit and RxJava (Using Retrolambda syntax for brevity)
// Load all persons and merge them with their latest stats from GitHub (if they have any)
Realm realm = Realm.getDefaultInstance();
GitHubService api = retrofit.create(GitHubService.class);
realm.where(Person.class).isNotNull("username").findAllAsync().asObservable()
.filter(person