Карточка Middle Многопоточность и WorkManager обновлено

Как выбрать механизм фоновой работы

Вопрос

Как выбрать между корутинами, WorkManager, foreground service и AlarmManager?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

Работа нужна, пока пользователь на экране: корутины в viewModelScope. Гарантированно выполнить, можно отложить, с условиями: WorkManager.

Ответ

Работа нужна, пока пользователь на экране: корутины в viewModelScope. Гарантированно выполнить, можно отложить, с условиями: WorkManager. Долгая заметная пользователю работа (музыка, навигация, звонок): foreground service с типом. Точное время: AlarmManager. Должно завершиться, пока процесс жив: application-scope.

Разбор

Работа нужна, пока пользователь на экране: корутины в viewModelScope. Гарантированно выполнить, можно отложить, с условиями: WorkManager. Долгая заметная пользователю работа (музыка, навигация, звонок): foreground service с типом. Точное время: AlarmManager. Должно завершиться, пока процесс жив: application-scope.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.