Пример использования Android SyncAdapter - PullRequest
18 голосов
/ 08 сентября 2010

Что мы делаем сейчас?
У нас есть некоторые структурированные текстовые данные на сервере, который предоставляется с помощью веб-сервисов (RESTful). Мое приложение регулярно опрашивает этот сервер (AlarmManagerService), чтобы получить данные и сохранить их в локальной базе данных (sqlite). Кроме того, пользователь предварительно авторизован и авторизован для доступа.

Вопросы:

  1. В SDK есть класс SyncAdapter / AccountManager, и мне было интересно, может ли он использоваться в моем приложении для достижения синхронизации, упомянутой выше?

  2. Если да, какая инфраструктура необходима для поддержки синхронизации, настроенной с помощью этого адаптера? Приветствуются ссылки на статьи и т. Д., В которых подробно описывается использование этого адаптера, а также другая информация.

1 Ответ

18 голосов
/ 08 сентября 2010

Да SyncAdapter / AccountManager полезен для вашего варианта использования. Authenticator (который вызывает AccountManager за кулисами) может обрабатывать аутентификацию для вашего приложения. SyncAdapter может обрабатывать периодические синхронизации с сервера в локальное хранилище данных. Вам не придется реализовывать это самостоятельно с помощью AlarmManager. Пример кода при использовании SampleSycnAdapter / Authenticator приведен в SampleSyncAdapter в Android-устройстве.

Ваш внутренний REST-сервер будет работать без проблем с SyncAdapter, без особых изменений. Единственные различия будут в вашем клиенте, как, например, вместо вызова методов выборки данных сервера в AlarmManager, вы должны вместо этого вызывать их в onPerformSync () вашего класса, который расширяет SyncAdapter. Пример кода, упомянутый выше, сделает его более понятным. Надеюсь, это поможет.

...