Как обнаружить изменения в базе данных Android Комната локальной базы данных SQLite - PullRequest
0 голосов
/ 20 апреля 2020

Мое текущее приложение Android использует Room для управления своей локальной базой данных SQLIte.

Определенный набор связанных таблиц (родительских дочерних элементов) управляет данными, отображаемыми в остальной части моего приложения.

Когда пользователь вносит какие-либо изменения в родительские и / или дочерние таблицы, мне нужно добавить sh эти изменения на мой удаленный сервер через вызовы RESTful API.

Последовательность действий на экране выглядит следующим образом: -

Main Menu Activity -> Parent Data Activity -> (Multiple Children Activities)

Я только изменяю wi sh на pu sh, когда пользователь выходит из действия родительских данных обратно в главное меню.

Мне нужно определить, какие столбцы были изменены или Родительская таблица или любые дочерние таблицы.

Я хочу игнорировать, когда пользователь только что просмотрел данные и не вносил изменений

Я также хочу игнорировать, когда пользователь изменил значение, затем изменил его обратно к исходному значению.

Есть ли в SQLite какой-либо встроенный механизм для обнаружения "реальных" изменений строк / столбцов таблицы?

Или это мое единственное решение для кэширования до строк из Будут ли задействованы все таблицы и сравнивать их со строками после, когда пользователь выйдет из моего действия с родительскими данными?

1 Ответ

1 голос
/ 20 апреля 2020

Вы можете использовать LiveData в сочетании с Room. Это, по крайней мере, даст вам уведомления о значениях. Позволяя вам писать логи c, когда отправлять на удаленный сервер.

Хотя это не решит изменившуюся ситуацию. https://developer.android.com/topic/libraries/architecture/livedata#use_livedata_with_room

...