Я создаю приложение для Android, которое использует явный широковещательный приемник, чтобы знать, когда устройство подключено. Я думаю, что Android 5.0 JobScheduler API будет намного лучшим способом сделать это, но у меня есть один вопрос: можно ли использовать этот API или аналогичный в более ранних версиях Android? Если это невозможно, что было бы лучшим вариантом для этого (вместо явного широковещательного приемника)?
Android 5.0 JobScheduler API в более ранних версиях?
Ответ 1
Это заменяет старую библиотеку GCM Network Manager.
Ответ 2
Другим вариантом является эта библиотека: https://github.com/evernote/android-job
Он использует JobScheduler
и GcmNetworkManager
, если это возможно. В противном случае он возвращается к AlarmManager
. Он также обрабатывает различные уровни API с помощью AlarmManager
. Это сообщение в блоге дает вам обзор.
(PS: Я главный разработчик, который работал над этой библиотекой в Evernote. Это полезно для наших проектов, поэтому я хотел бы также поделиться им здесь)
Ответ 3
Update:
Firebase JobDispatcher был представлен для замены ниже.
Update:
В Play Services 7.5 Сетевой менеджер GCM.
Это ближайшее приближение для backport API JobSchedulers.
Пользователь Evant в Github создает Совместимость версии API JobScheduler.
В момент публикации он не готов к производству, но стоит упомянуть
Ответ 4
Я думаю, что Android 5.0 JobScheduler API будет гораздо лучшим способом сделать это
Ну, это зависит от того, что такое "this". Простое знание, когда устройство подключено, бессмысленно, если вы не собираетесь что-то делать с этой информацией, и мы не знаем, что вы имеете в виду.
Имейте в виду, что JobScheduler
не обязательно дает вам контроль, когда устройство подключено. Скорее, он использует этот факт, плюс ваши JobInfo
и другие факторы окружающей среды, чтобы определить, когда вам нужно управлять.
Можно ли использовать этот API или аналогичный в более ранних версиях Android?
В настоящее время нет backport JobScheduler
, поставляемого Android SDK. В то время как кто-то, скорее всего, напишет backport в какой-то момент, я не знаю ни одного доступного в качестве открытого источника на данный момент.
Если это невозможно, что было бы лучшим вариантом для этого (вместо явного широковещательного приемника)?
Опять же, это зависит от того, что действительно есть "this". Например, если вы пытаетесь сказать: "Я хочу получать контроль каждый так часто, но только если устройство подключено", вы можете использовать AlarmManager
, а затем проверить, подключено ли устройство, прежде чем продолжить работу с работа.
Ответ 5
Пришел через эту библиотеку, не пробовал, но выглядит хорошо для чего вы хотите: https://github.com/airk000/Trigger
Evernote android-job может быть лучшим решением, хотя:)