
Комментарии 4
Мне кажется, что ваш метод немного дороговат для решаемой задачи. Во-первых, мне не понятно как часто каждый клиент будет опрашивать количество строк (каждую секунду, две и т.д.). Понятно, что посчитать записи тоже надо уметь. Давно была статья на Хабре, где читались системные вьюхи для этого. Возможно, вашу задачу можно было бы решить на триггерах (UPDATE/INSERT/DELETE), но лучше бы уведомить сервер приложений, а не каждого клиента в отдельности. А если есть сервер приложений, то проще сделать как слветуют на SO — некоторая шина данных, сообщения, подписка на изменение и т.д.
Но это моё мнение…
Каждый клиент сам не будет каждые N времени запрашивать кол-во строк, это будет происходит по триггеру при обновлении данных в таблице. Клиент лишь подписывается один раз, а далее уже работает триггер(на UPDATE/INSERT/DELETE), который уведомляет об изменениях в таблице. При срабатывании триггера происходит повторный запрос кол-ва данных в таблице и если кол-во больше 0, то и самих данных, далее клиенту(подписчику) возвращаются актуальные данные.
Я бы Publisher использовал и уже на него бы подписался, чтобы покрыть ваш кейс с пустым списком.
Room + RxJava2 Flowable получение пустого списка при отсутствии данных