SyncAdapter против JobScheduler

За исключением того факта, что JobScheduler поддерживает только API > 21, предназначен ли JobSchedulers для полной замены SyncAdapters? Или SyncAdapter содержит какую-либо функциональность, отсутствующую в JobScheduler?

Мой вариант использования — синхронизация RSS-канала каждые пару часов. Это выполнимо с помощью JobScheduler, верно?


person ZakTaccardi    schedule 12.05.2015    source источник
comment
Я бы порекомендовал этот блог bignerdranch.com/blog/   -  person Piyush Kukadiya    schedule 11.02.2017


Ответы (2)


Я бы сказал, что JobScheduler не является прямой заменой SyncAdapter, у которого гораздо более специализированное назначение (передача данных между устройством и сервером). JobScheduler, с другой стороны, служит для планирования выполнения задач в определенный момент времени в будущем — точно так же, как AlarmManager, но с более широким потенциалом.

Кстати, есть попытка бэкпорта JobScheduler.

person AndroidEx    schedule 12.05.2015

SyncAdapter

Платформа по-прежнему предоставляет класс SyncAdapter для управления задачами, которые синхронизируют данные между устройством и сервером. Адаптеры синхронизации разработаны специально для синхронизации данных между устройством и облаком; вы должны использовать их только для этого типа задач. Адаптеры синхронизации более сложны в реализации, чем библиотеки и API, упомянутые выше, поскольку для них требуется как минимум поддельный аутентификатор и реализация поставщика контента. По этим причинам обычно не следует создавать адаптер синхронизации только для синхронизации данных с облаком в фоновом режиме. По возможности вместо этого следует использовать JobScheduler, Firebase JobDispatcher или GCM Network Manager.

В Android N (уровень API 24) SyncManager находится поверх JobScheduler. Вы должны использовать класс SyncAdapter только в том случае, если вам требуются дополнительные функции, которые он предоставляет.

https://developer.android.com/topic/performance/scheduling.html

person kreker    schedule 07.04.2018