При типичном рабочем процессе, использующем компоненты архитектуры Android, сетевое чтение заполняет комнатную базу данных, а живые данные наблюдают за изменениями, а затем просматривают обновление триггеров представления модели, что мне вполне подходит.Тем не менее, у меня есть пользовательский ввод, который изменяет один из столбцов в БД (через модель представления).Обновление в порядке, но затем оно вызывает getItems (), потому что БД обновляется и весь пользовательский интерфейс обновляется.Поскольку он инициирован пользовательским интерфейсом, мне не нужно обновлять данные из БД.
Есть ли способ сообщить БД "просто примите мое обновление, не вызывайте обновление назад"?
@Query("SELECT * FROM ${ItemEntity.ITEM_TABLE_NAME} WHERE ${ItemEntity.TYPE} = :type ORDER BY ${ItemEntity.TIMESTAMP_SEC} DESC LIMIT :offset, :count")
fun getItems(offset:Int, count:Int, type: String): Flowable<List<ItemEntity>>
@Insert(onConflict = OnConflictStrategy.IGNORE)
fun insertAll(items: List<ItemEntity>)
Я могу использовать Single вместо Flowable, но не получу обновления, если БД изменилась из-за последующего обновления сети.