Синхронизация контактов Android с сервером - алгоритм синхронизации - PullRequest
2 голосов
/ 03 августа 2011

Я хочу синхронизировать контакты моего устройства Android с сервером (односторонняя синхронизация: обновлять сервер в соответствии с базой данных контактов устройства).

Я видел пример SampleSyncAdapter: http://developer.android.com/resources/samples/SampleSyncAdapter/index.html

и очень хороший блог для понимания частей головоломки: http://ericmiles.wordpress.com/2010/09/22/connecting-the-dots-with-android-syncadapter/

Я понимаю, что сама логика синхронизации должна переопределять onPerformSync () в классе, расширяющем AbstractThreadedSyncAdapter.

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

1 Ответ

0 голосов
/ 19 октября 2011

В идеале большая часть этой работы переносится на сервер.

Если вы говорите о типе сервера REST API, у вас есть два варианта:

  1. Сначала идите, чтобы получить индекс строк в вашем наборе данных и передать параметркак часть запроса отфильтровать строки, измененные с даты, а затем извлечь только эти конкретные строки.

Если это не поддерживается их REST API,

  1. Получить каждую строку по собственному URL и использовать поля заголовка HTML , чтобы определить только то, что изменилось.Смотрите, например, поле «If-Modified-Since».Это сообщит серверу, что если страница, которую вы выбираете, не изменилась, не нужно возвращать ее, а вместо этого отправлять ответ 304 (не измененный).Если это 304, вы знаете, что вам не нужно менять свою БД.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...