Есть ли опыт работы с фоновыми задачами в Android
Что проверяют
Работали ли вы с фоном руками или знаете WorkManager по статьям. Интервьюеру важно, понимаете ли вы ограничения системы: Doze, лимиты фонового запуска, типы foreground-сервисов. Следом спрашивают, почему выбрали именно этот инструмент и как обрабатывали повторы и ошибки.
Как отвечать
Стройте ответ на своём проекте: какая была задача, какой инструмент выбрали и почему, что пошло не так, чем кончилось. Цифры (сколько пользователей, как изменилась доля доставленных событий, сколько тратилось батареи) нужны ваши: выдуманные проценты интервьюер распознаёт на первом уточнении.
Каркас выбора инструмента:
- корутины в
viewModelScopeилиlifecycleScope: асинхронная работа, пока пользователь на экране. Умирает вместе с экраном или процессом; WorkManager: отложенная работа с гарантией выполнения, например синхронизация или отправка аналитики. Переживает перезапуск процесса и устройства, поддерживаетConstraints(сеть, зарядка),Result.retry()с backoff, уникальные задачи черезenqueueUniqueWork. Для Kotlin берутCoroutineWorker. Периодическая задача запускается не чаще раза в 15 минут;- срочная работа:
setExpedited()для коротких задач, которые нужно запустить сразу; - foreground service: долгая работа, которую видит пользователь (плеер, навигация, запись трека). С Android 14 обязательно указывать
foregroundServiceType, а запуск из фона ограничен с Android 12.
Если опыт был небольшой, честно так и скажите: «делал синхронизацию на WorkManager в одном проекте, с foreground-сервисами не работал, но знаю, чем они отличаются и какие ограничения появились в последних версиях».
Где спотыкаются
Называют AsyncTask рабочим вариантом. Он объявлен устаревшим в Android 11, и в современном проекте упоминать его как свой выбор это минус.
Кладут в WorkManager всё подряд, включая работу, нужную прямо сейчас на экране. Момент запуска он не гарантирует, система откладывает задачи по своим правилам.
Не думают о дублях: без enqueueUniqueWork каждый запуск приложения ставит ещё одну периодическую синхронизацию, и через неделю их десяток.