GcmTaskService vs SyncAdapter

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

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

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

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

Intereting Posts
Как разместить маркер местоположения на картах Google в автономном режиме? Ошибка загрузки активности с помощью HierarchyViewer Android Studio не распознает мое устройство – один плюс один Чтение и запись ArrayList из ArrayLists, содержащих Parcelable Objects, для передачи в намерении Создайте файл на разных мобильных телефонах в Qt Могу ли я закрыть диалоговое окно предупреждения в списке? Уведомление в ожиданииIntent contentIntent завершается сбой при завершении вызова активности () SwitchCompat рисует дополнительные строки Запуск пользовательского ПЗУ на Android-эмуляторе Отформатируйте относительную дату в формате, удобочитаемом человеком, на Android, используя Android DateUtils API Сброс изменения пути SD-карты в Android Studio AVD Manager Является ли приемлемой практикой использование Singleton Objects для сохранения состояния или обмена данными между Activity? Samsung отключает пакеты FindFragmentById всегда возвращает null Дата javascript недействительна для iOS