我需要从Api查询数据然后将其保存到Realm对象。我需要从领域对象获取Presenter的数据(可观察),除非从最后一个Api查询开始经过5分钟,在其他情况下我需要再次从Api获取。我是RxJava的新手。有什么建议吗?
答案 0 :(得分:3)
您可以创建一个托管destinationColumnIndex
的类和一些更新逻辑:
TemplateColumn
答案 1 :(得分:0)
如何设置两个不同的可观察量:
1。)观察领域数据:
realm.where(MyData.class)
.findAllAsync()
.asFlowable()
.filter(RealmResults::isLoaded)
.subscribe(...);
2。)每5分钟获取一次数据
Observable.interval(5, TimeUnit.MINUTES)
.subscribeOn(Schedulers.io())
.switchMap((ignored) -> {
return apiService.getData();
})
.subscribe((data) -> {
try(Realm realm = Realm.getDefaultInstance()) {
realm.executeTransaction((r) -> {
r.insertOrUpdate(data);
});
}
});
编辑:然后只需调用类似
的方法flowable = realm.where(MyData.class)
.findAllAsync()
.asFlowable()
.filter(RealmResults::isLoaded)
.subscribe(...);
if(cache.isOlderThanFiveMinutes()) {
startRefreshTaskOnBackgroundThread();
}