Уведомлять (RX) наблюдателя данных только при изменении размера таблицы - PullRequest
0 голосов
/ 25 января 2019

Я использую реактивные наблюдатели (RxJava2) для прослушивания изменений БД.

Вот метод подписки:

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

Однако я хотел бы получать уведомления только при изменении размера таблицы.Как этого добиться?

Спасибо

1 Ответ

0 голосов
/ 25 января 2019

Специальной функции для этого нет. Ваш наблюдатель должен будет вызвать count() в поле, если у вас нет условий запроса (в противном случае также будет 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);

Для дополнительного чтения, пожалуйста, проверьте документы .

...