仅在表大小更改时通知(RX)数据观察器

时间:2019-01-24 21:43:05

标签: android objectbox

我正在使用反应性观察者(RxJava2)来监听数据库更改。

这是订阅方法:

  fun subscribeGetTasks(): Flowable<List<Task>> {
        val query = taskBox.query().build()
        return RxQuery.observable(query).toFlowable(BackpressureStrategy.BUFFER)
    }

但是,我只希望在表大小更改时得到通知。 如何实现?

谢谢

1 个答案:

答案 0 :(得分:0)

没有特殊功能。如果您没有查询条件,则观察者将不得不在框中调用count()(否则,Query对象上也将有一个count())。

但是,如果只对一个框中所有对象的计数感兴趣,最好不要使用查询。相反,您可以使用ObjectBox进行此操作:

DataObserver<Class<Task>> taskObserver = new DataObserver<Class<Task>>() {
    @Override public void onData(Class<Note> data) {
        long taskCount = taskBox.count();
    }
};
boxStore.subscribe(Task.class).observer(taskObserver);

有关其他内容,请检查docs