Я работаю над резервным копированием и синхронизацией контактов.
Цель - отправить все данные обо всех контактах на сервер (определенный пользовательский протокол) в качестве резервной копии.
При первом запуске приложения все контакты будут поставлены в очередь и отправлены на сервер.И после этого будет работать фоновая служба, которая будет прослушивать добавление / обновление нового контакта, и этот новый / обновленный контакт будет отправляться на сервер фоновой службой.
Я использую RawContactsEntity для получения записей.
Я пытался использовать ContentObserver
в таблицах RawContacts / Data для получения уведомления о добавлении или изменении контакта.Но, AFAIK, ContentObserver
выдает уведомление (onChange()
) об измененных данных в таблице в целом, а не ID отдельной записи.
Теперь моя проблема в том, как получить точные идентификаторы измененных / новых записей?
Я думал о создании резервной таблицы для сравнения с собственной таблицей контактов и получения измененных записей.Но по мере увеличения числа контактов производительность резко снижается, что также сокращает срок службы батареи.
Можете ли вы мне предложить, Наилучший способ выполнения операции резервного копирования контактов с точки зрения производительности и использования памяти?Есть ли какой-нибудь другой способ для синхронизации контактов?
Было бы очень полезно, если бы кто-нибудь мог поделиться примерами, которые могут помочь мне в этом.