Я смотрел учебник по планированию Vogella. Он упоминает Job Scheduler API, который был представлен в API 21 Android. Мой вопрос заключается в том, может ли он реализоваться в API ниже 21 (Lollipop), но не меньше, чем Android версии 3 (Honeycomb)?Использование планировщика заданий в Android API <21
ответ
теперь (после I/O 2015), вы также можете используйте новый GcmNetworkManager. Как его использовать и как он работает, здесь описывается - https://developers.google.com/cloud-messaging/network-manager
Он делает много классных вещей, как будто он сохраняет ваши задачи за счет перезагрузки. На Lolipop он использует JobScheduler, на пре-Lolipop он использует свою собственную реализацию.
EDIT:
Пример кода о том, как использовать его: https://github.com/jacktech24/gcmnetworkmanager-android-example
Связано ли это с GCM? Может ли любое приложение, даже те, которые не имеют никакого отношения к GCM, использовать его? Может ли это быть полной заменой JobScheduler? Каковы недостатки? –
Это не связано с GCM в любом случае, о чем вы должны заботиться. Это не замена планировщика заданий, потому что это связано только с задачами, связанными с Интернетом, но это способ получить сетевой планировщик заданий по сетям на более ранних версиях Android. – filipproch
Может ли он также использоваться для материалов, не связанных между собой? Кроме того, знаете ли вы хороший пример того, как его использовать (кроме ссылки, которую вы предоставили)? –
Вы можете посмотреть на JobSchedulerCompat library.
Однако, как отмечают авторы, есть причина, по которой JobScheduler доступен только от Lollipop и далее, поэтому обратите внимание на это. Цитирование:
Однако эта библиотека не была хорошо проверенными, так что я бы посоветовал не использования в производстве в настоящее время. Нет никаких гарантий, что этот не разрядит аккумулятор или не взорвет устройство.
тоже эта библиотека не рекомендуется для производства использование. – njzk2
Да. Обновленный ответ, чтобы подчеркнуть это. – Sebastiano
Есть несколько способов запуска «рабочих мест» перед леденец.
Как уже упоминалось вы можете использовать JobSchedulerCompat
библиотеку, но эта библиотека имеет огромное значение по сравнению с Lollipop по умолчанию API на:
На Lollipop рабочих мест дозируют и планируется для всех приложений сразу. Однако библиотека не имеет доступа к другим данным приложений и поэтому не может комбинировать задания из двух разных приложений, используя библиотеку.
Еще один вариант, который вы можете попробовать - это API AlarmManager
. Этот API можно использовать для планирования заданий, но одно отличие состоит в том, что AlarmManager
не имеет ограничений, кроме времени для выполнения заданий.
Поскольку KitKat API AlarmManager также выполняет задания, если они не запланированы с помощью «точных» методов. Перед тем, как задания KitKat не будут загружены.
Если ваша цель состоит в том, чтобы синхронизировать данные, чем API Sync-адаптер может быть полезным: Sync-Adapter
Ссылки: AlarmManager, JobSchedulerCompat
Существует очень хороший и мощный job scheduler library с Evernote. Он использует лучший метод на каждом уровне SDK и дает вам один очень чистый и элегантный интерфейс для планирования и запуска заданий.
См. this Ссылка об обзоре API Android N Preview.
GCMNetworkManager, входящий в состав Служб Google Play, который предлагает аналогичное планирование работы с совместимостью через устаревшие версии Android.
Рекомендуемый подход для предварительных леденцов устройств является использование https://github.com/firebase/firebase-jobdispatcher-android#user-content-firebase-jobdispatcher-
Подробнее о https://developer.android.com/topic/performance/scheduling.html#fjd
Firebase JobDispatcher является открытым исходным кодом библиотеки, которая предоставляет API, аналогичное JobScheduler на платформе Android . Firebase JobDispatcher служит для уровня совместимости JobScheduler для приложений, ориентированных на версии Android ниже 5.0 (API уровня 21).
Firebase JobDispatcher поддерживает использование Google Play услуги в виде реализации для диспетчеризации (погонных) рабочих мест, но библиотека также позволяет определить и использовать другие реализации: Например, вы может решить использовать JobScheduler или написать собственный собственный код. Из-за этой универсальности мы рекомендуем использовать эту Firebase JobDispatcher, если ваше приложение нацелено на версию Android ниже 5.0 (уровень API 21).
Дополнительную информацию о Firebase JobDispatcher см. В его документации и исходном коде .
- 1. Использование setImageTintMode в Android API <21
- 2. Ошибка API планировщика заданий 80041318
- 3. Использование планировщика заданий и многопоточности
- 4. Android: Планировщик заданий для планировщика
- 5. API планировщика заданий с использованием QT
- 6. C# API для планировщика заданий 2.0
- 7. java.lang.VerifyError с API <21
- 8. Создание планировщика заданий cron
- 9. Перемещение заданий планировщика кварца
- 10. Установщик планировщика заданий Windows
- 11. SSIS - ошибка планировщика заданий
- 12. Виджет пользовательского планировщика заданий?
- 13. планировщика заданий не вызывать
- 14. Дизайн планировщика заданий
- 15. com.google.android.gms.ads.AdView в уровне API <21
- 16. AppCompatButton backgroundTint API <21
- 17. перелива цвета значок в <API 21
- 18. Как определить состояние сети с помощью планировщика заданий в android?
- 19. Android CardView setBackground в BitmapDrawable когда API <21
- 20. Стили Android не работают корректно в API <21
- 21. Как получить код IETF BCP47 в Android API <21
- 22. Запуск планировщика заданий Завершение триггера
- 23. Планировщик планировщика заданий с конфигурацией
- 24. Редактирование задач планировщика заданий C#
- 25. Запуск планировщика заданий не начался
- 26. Использование карт на api 21+ внутри вкладки
- 27. Android API 21 - виджет TimePicker
- 28. Android API 21 ошибка 9patch?
- 29. Как добавить отметку на android api <21
- 30. Использование планировщика в Web API usung C#
Я считаю, что это по-прежнему актуальный ответ; http://stackoverflow.com/a/27633880/680519. – harism
в упоминаемом учебнике, он сравнивает планировщик заданий с диспетчером аварийных сигналов и адаптером синхронизации, оба решения, которые существуют в нижней части apis и имеют аналогичные функциональные возможности. – njzk2