Вы также можете использовать getContentResolver (). RegisterContentObserver , но, к сожалению, он не сообщает вам, какие изменения были сделаны, это может быть удаление, вставка или обновление.
Если вы управляете ContentProvider, который взаимодействует с БД, вы можете запустить Intent или использовать getContentResolver (). NotifyChange , чтобы отправить специальное уведомление Uri, которое идентифицирует как таблицу, так и действие. Пример Uri, с которым вы могли бы уведомить, может быть: content://my-authority/change/table-name/insert
Но даже тогда вы не знаете точно, на какие строки повлияло изменение.
Похоже, что триггеры, которые записывают в таблицу журнала изменений, гарантируют, что вы услышите обо всех изменениях, независимо от того, откуда они произошли, и вы сможете узнать точный идентификатор и произошедшее действие. К сожалению, это означает более медленные вставки / обновления / удаления, и это означает, что вам, вероятно, нужна какая-то служба для обработки и удаления изменений.
Я бы хотел услышать, есть ли какое-нибудь лучшее решение!