GcmTaskService vs SyncAdapter

Недавно я прочитал о GcmTaskService и GcmNetworkManager для планирования задачи. В моем случае используется типичный SyncAdapter, где мне нужно периодически синхронизировать некоторые данные с моим сервером, и в настоящее время я использую SyncAdapter. Мой вопрос в том, какие различия между GcmTaskService и SyncAdapter. А когда использовать GcmTaskService и когда использовать SyncAdapter?

Solutions Collecting From Web of "GcmTaskService vs SyncAdapter"

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

Sync Adapter выполняет синхронизацию данных между сервером и локальной базой данных. Синхронизирующие адаптеры выполняются асинхронно, они передают данные регулярно и эффективно, но не мгновенно. Если вам нужна передача данных в реальном времени, вы должны сделать это в AsyncTask или IntentService. Эта структура помогает управлять и автоматизировать передачу данных и координировать операции синхронизации в разных приложениях.

Google Cloud Messaging (GCM) предоставляет как сервер, так и компоненты устройства, необходимые для работы этой системы обмена сообщениями. Использование GCM для запуска передач является более надежным и более эффективным, чем сервер опроса для статуса. Во время опроса требуется Служба, которая всегда активна, GCM использует BroadcastReceiver, который активируется при поступлении сообщения. В то время как опрос с регулярными интервалами использует заряд батареи, даже если обновления не доступны, GCM отправляет сообщения только при необходимости.