В Oreo служба не будет работать, если приложение не на переднем плане
Да, будет.Это просто должна быть служба переднего плана.
Тогда какая разница между JobScheduler и startService ()
startService()
немедленно.Задание, назначенное с JobScheduler
, отсутствует.JobScheduler
может отложить работу до более позднего времени, когда потребуется выполнить другую работу, чтобы минимизировать количество потребляемой энергии (для ЦП, для WiFi, для мобильных данных и т. Д.).
Также startService()
всегда происходит.Задание с JobScheduler
может не выполняться.Вы можете установить критерии для задания (например, требуется сетевое подключение), и задание будет выполняться только при соблюдении критериев.
и почему Android поддерживает JobSchedular поверх startService () для фонаоперации от oreo.
Потребляемая мощность, в основном, насколько я могу судить.
Я все еще могу планировать тонны заданий со стороны, и это также повлияет на батареюспектакль.
Да, но у Google есть намного лучший API для возможности контролировать это в будущем.Если разработчики злоупотребляют JobScheduler
, будущие версии Android могут дополнительно ограничить скорость выполнения заданий, расширить режим ожидания для заданий и т. Д.