Служба Android, которая синхронизирует данные между устройством Android и сервером
A SyncAdapter
- это Android Service
, который синхронизирует данные между устройством Android и внутренним сервером. SyncAdapter
могут быть частью программы Android или автономной сущностью. SyncAdapter
связаны с Account
, который определяет набор данных, принадлежащих конкретному приложению.
Цель SyncAdapter
- обеспечить согласованность данных на устройстве Android и на сервере. Когда данные изменяются на сервере, SyncAdapter
должен идентифицировать, что было внесено изменение, и обновить данные на устройстве Android, чтобы отразить это изменение.
Наиболее распространенный тип данных, которые синхронизируются с помощью SyncAdapter
, - это ваш список контактов. Каждый раз, когда вы добавляете контакт на свой телефон, этот контакт также отправляется на сервер Google и сохраняется в нем. Точно так же, если вы добавите контакт из другого сервиса Google, такого как GMail, SyncAdapter
определит, что контакт был добавлен, и скопирует данные на ваше устройство Android.
Любой тип данных может быть синхронизирован с внутренним сервером, он зависит только от типа данных, с которыми имеет дело ваше приложение. Другими распространенными типами данных, которые нужно синхронизировать таким образом, являются списки календарей и дел / задач.
Причина, по которой существует SyncAdapter
, заключается в создании локальной копии данных, чтобы к ней можно было быстро получить доступ без необходимости подключения к данным. Например, если ваши контакты синхронизируются, вы можете быстро получить доступ к своим контактам на устройстве Android независимо от того, есть ли у вас доступ к данным или нет - все эти данные хранятся локально, независимо от требований сети.
SyncAdapter
обычно отправляют на сервер сообщение «проверка», например, каждые 30 минут, чтобы спросить, были ли внесены какие-либо изменения за это время. Это только небольшой обмен данными, и он не потребляет много сетевых данных. Дальнейшие шаги «синхронизации» выполняются только в том случае, если данные изменились и требуют соответствующего обновления на устройстве Android.