Задать вопрос

В андроид больше не принято использовать сервисы для фоновых задач?

Всем привет.
Изучаю андроид, на startandroid увидел такое:

Когда-то давно для фоновой работы были предназначены сервисы. Но в Android 8 их очень сильно ограничили: если приложение не активно, то и сервис будет остановлен через какое-то время. Да и еще задолго до Android 8 разработчики начали использовать такие инструменты как JobScheduler или Firebase JobDispatcher для запуска фоновых задач.

WorkManager - новый инструмент. Он позволяет запускать фоновые задачи последовательно или параллельно, передавать в них данные, получать из них результат, отслеживать статус выполнения и запускать только при соблюдении заданных условий.


Хотелось бы узнать, насколько это верно? Для фоновых задач всегда стоит использовать WorkManager или не все так однозначно и зависит от каких-то деталей? Буду благодарен за ликбез
  • Вопрос задан
  • 1054 просмотра
Подписаться 5 Простой 1 комментарий
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Сервисы в 2019 году фактически надо использовать только для foreground задач, не находящихся непосредственно на экране. А-ля музыкальный плеер и проигрывание музыки, и тому подобное.

Всякие "долгие операции и вычисления", всякие загрузки больших файлов в сеть и тому подобное нужно делать с помощью WorkManager'a.

Некоторое время назад ещё рекомендовал использовать библиотеку от evernote, например, мы в проде ещё не мигрировали с неё.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
iLLuzor
@iLLuzor
Java, Kotlin, Android Developer
Фоновые задачи бывают очень разные, например обращение к сети или к бд в отдельном потоке - тоже фоновые задачи, но для них (в большинстве случаев) не нужны сервисы или WorkManager.
Стоит почитать об ограничениях разных версий android(меню слева) и изучить, как и где использовать WorkManager.

все так однозначно и зависит от каких-то деталей?
Всё не однозначно, сервисы хоронить не надо, есть случаи, когда без них не обойтись, например Foreground Service.
Ответ написан
Комментировать
402d
@402d
начинал с бейсика на УКНЦ в 1988
учить и учить. Я вот полтора года учу яву.
ворк менедждер я пропусил, прочитав о нем сейчас, могу сказать.
Что-то было проще сделать через него вместо асинктасков.
А вот то, чем у меня занимаются сервисы на него вообще не перекладывается.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы