2013-04-24 2 views
13

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

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

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

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

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

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

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

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

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

ответ

3

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

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

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

Для получения дополнительной информации о том, как это работает.

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

2

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

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

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

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