GcmTaskService против SyncAdapter

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

1 ответов


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

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

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