Подтвердить что ты не робот

Связаться с адаптером синхронизации в android

Я хочу использовать адаптер синхронизации в своем приложении для синхронизации собственных и сторонних контактов (кроме FB) с сервером. (Только синхронизация с одним клиентом на сервер)

У меня здесь два сомнения -

1) Если в устройстве есть несколько адаптеров синхронизации. Если бит грязной бит уже очищен другим адаптером синхронизации, сможет ли мой адаптер синхронизации обнаруживать немедленное изменение/обновление контактов.

2) Я использовал

ContentResolver.setIsSyncable(account, ContactsContract.AUTHORITY, 1);
ContentResolver.setSyncAutomatically(account, ContactsContract.AUTHORITY, true);     

для синхронизации контактов с сервером.

Он запускает синхронизацию каждые 30 секунд.

Но я хочу, чтобы он получал уведомление немедленно, когда когда-либо были добавлены контакты или удалены или обновлены, чтобы запустить perfromSync.

Нужно ли использовать наблюдателя?

4b9b3361

Ответ 1

Чтобы увидеть изменения в контактах, вам необходимо зарегистрировать наблюдателя в ContentResolver. API синхронизации не предназначен для наблюдения за каждым изменением, он предназначен для фонового API, который Android запускается автоматически автоматически для вас, чтобы он мог выполнять пакетные операции и использовать сеть более эффективно, а не запускаться при отключении сети и т.д...

Грязный бит используется для каждой учетной записи. В общем случае синхронизация предназначена для наличия "собственной" учетной записи для каждого контакта и не предназначена для экспорта всех контактов с устройства на конкретную услугу. Существует процесс агрегации, который обрабатывает соединение контактов из нескольких учетных записей в один "Контакт", как видно пользователю. См:

http://developer.android.com/reference/android/provider/ContactsContract.RawContacts.html

Подробнее о том, как это работает,

Если вы намерены экспортировать все контакты на устройство в свою службу, вам нужно будет прогуливать контакты и вставлять необработанные контакты для вашей службы. Затем вы также захотите посмотреть ContentResolver с наблюдателем, чтобы увидеть, когда пользователь добавляет новый контакт в какую-либо службу или периодически просматривает таблицу, которая ищет контакты, которые вы еще не экспортировали.

Ответ 2

используйте бит версии. Если какой-либо контакт редактируется Он автоматически увеличивается на 1.

чтобы создать локальную базу данных для сравнения предыдущей версии с текущей версией . Если происходят какие-либо изменения, вы вызываете запрос на обновление.

для получения дополнительной информации посетите здесь.

Эта версия помогает для моих обновлений синхронизации. Поэтому я разделяю этот ответ для всех.