Firebase JobDispatcher и Evernote Android Job — как они соотносятся?

В настоящее время в Android для периодического выполнения задачи в зависимости от времени или любых других факторов, таких как состояние зарядки, состояние сети и т. д., есть три основных варианта: Android AlarmManager (который работает периодически в зависимости от времени ), GCMTaskService (требуется сервис Google Play на устройстве) и JobScheduler (требуется Android версии > 21). Недавно я наткнулся на эти две библиотеки для планирования заданий, одну из Firebase и одну из Evernote.

Мой основной вопрос: как сравнить эти две библиотеки? Каковы их сильные и слабые стороны?

Я хочу создать приложение, в котором пользователю периодически напоминают о приеме лекарств через определенный период времени.

Мой второстепенный вопрос: достаточно ли для этой цели простого AlarmManager или мне следует использовать любую из этих двух библиотек?

Спасибо.


person Riddhiman Adib    schedule 04.04.2017    source источник


Ответы (1)


Как эти две библиотеки сравниваются? В чем их сила и слабость?

На странице github есть хорошая сравнительная таблица:

введите описание изображения здесь

Ключевое отличие заключается в наличии сервисов Google Play: для установки Firebase требуется устройство, тогда как Evernote не зависит от сервисов Play.

Я хочу создать приложение, в котором пользователю периодически напоминают о приеме лекарств через определенный период времени. Подойдет ли для этой цели простой AlarmManager или мне стоит выбрать любую из этих двух библиотек?

Эмпирическое правило заключается в том, что, скорее всего, вам не понадобится AlarmManager, потому что это разрядник батареи. Одной из ключевых особенностей диспетчеров заданий является то, что они объединяют задания и выполняют их в одном окне, поэтому устройство не будет просыпаться слишком часто.

Вам лучше придерживаться диспетчеров заданий, если только прием лекарств не должен иметь точное время, например, сигнал тревоги (например, вы хотите уведомить пользователя о необходимости принять лекарство ровно через 3 часа).

person azizbekian    schedule 04.04.2017
comment
Я заметил одну информацию. Я использовал диспетчер аварийных сигналов для уведомления. Это работало ниже и выше устройств с леденцами. But lollipop devices messed up alarm notification timing. Can i use theses android job scheduler for my purposes? - person Mahmudul; 04.04.2017
comment
@Mahmudul, если для вас приемлемо не быть точным во времени - вы можете использовать подход планировщика заданий. Если вам нужна точность - вы должны придерживаться AlarManager. - person azizbekian; 04.04.2017
comment
@Mahmudul, иди с Firebase JobDispatcher. - person Sanidhya Kumar; 02.06.2017