Здравствуйте, я разрабатываю приложение для Android, которое должно знать, когда контакт добавлен/обновлен/удален.
Итак, я прочитал несколько сообщений. Итак, информация, которую я собрал,
Мы можем получать уведомления через наблюдателей Content при каждом изменении контактов. Но мы не можем получить, какие контакты были добавлены/обновлены/удалены. Поэтому я прочитал официальный apis и подготовил свой проект, как захватить этот конкретный контакт.
Итак, что я думал в начале
- Мы будем хранить все идентификаторы контактов, удаленный флаг и версию
- Всякий раз, когда контакты меняются, я получаю счетчик строк в таблице и количество строк в системе Android.
- Если мой номер строки меньше, чем число строк в системе, контакт удаляется.
- Если число строк больше, чем число строк в системе, добавлен контакт.
- И если это не так, то одна из версий контактов была изменена.
Затем я узнал, что Android не удаляет контакт, если он удаляется пользователем, но он устанавливает 0 на удаленный флаг. Поэтому в этих случаях количество строк будет таким же.
Android также многократно изменяет идентификатор строки контакта, как указано в официальных документах. Итак, как мы можем однозначно идентифицировать их как поиск uri, а если нет, тогда мы также должны поставить наблюдателя.
Поэтому я просто хочу знать, что я считаю правильным или нет. И в случае добавления контакта добавляется ли она в последнюю строку курсора или нет, если я проверю последнюю строку системной базы данных для контактов, она даст мне контакт, добавленный или нет.
Пожалуйста, помогите мне понять архитектуру контактов Android.