Различия между Foreground и background
t.me/qa_chilloutВ мобильных приложениях не всё происходит на виду. Иногда пользователь активно взаимодействует с приложением (нажимает кнопки, смотрит контент). А иногда — приложение вроде бы "ушло", но продолжает делать что-то важное в фоновом режиме (например, скачивает данные, проигрывает музыку, считает шаги, присылает уведомления). Это и есть два ключевых режима работы:
- Foreground (передний план) — когда приложение перед глазами пользователя, он им активно пользуется.
- Background (фон) — когда приложение свёрнуто или не активно, но продолжает что-то делать без прямого участия пользователя.
На мобильных платформах, таких как Android и iOS, то, находится ли приложение в переднем плане или в фоне, зависит от того, виден ли сейчас экран приложения. В Android это управляется через Activity, в iOS — через ViewController или Scene. Если пользователь видит экран и взаимодействует с ним, приложение считается в переднем плане. Если его свернули или переключились на другое — оно переходит в фоновый режим.
Foreground (передний план)
Это когда приложение открыто на экране, и вы им пользуетесь прямо сейчас.
Примеры:
- Открыт мессенджер и вы переписываетесь в нём.
- Смотрите видео на YouTube.
- Используете навигатор — экран включен, маршрут показан.
Что важно:
- У приложения высокий приоритет.
- Оно может использовать максимум ресурсов телефона (процессор, память).
- Оно должно работать быстро, иначе появится сообщение "Приложение не отвечает".
Background (фон)
Это когда приложение свернуто или вы переключились на другое, но оно ещё что-то делает.
Примеры:
- Музыка продолжает играть, но вы в другом приложении.
- Файлы загружаются, пока вы читаете новости.
- Приложение считает шаги, даже когда не открыто.
Что важно:
- У него меньший приоритет, и телефон может его остановить, если не хватает ресурсов.
- Оно ограничено: не всё можно делать в фоне (например, нельзя долго использовать GPS).
- Для стабильной фоновой работы надо использовать специальные инструменты (например, WorkManager на Android).
Понимание этих состояний важно как для разработчиков, так и для тестировщиков, потому что:
- Поведение приложения сильно меняется в зависимости от состояния.
- Телефон может по-разному ограничивать доступ к ресурсам (например, к фоновым задачам или сетевым операциям).
- Неправильная работа в фоне — например, бесконтрольные запросы к сети, активные таймеры или незавершённые фоновые задачи — может привести к быстрому разряду батареи, зависаниям или даже к тому, что система принудительно закроет приложение.
- Некоторые баги проявляются только при переходах между этими режимами: например, теряется соединение, сбрасываются данные, перестают приходить уведомления.
Базовые сценарии для тестирования переходов foreground ↔ background:
- Сворачивание и возврат в приложение.
- Входящий звонок во время использования приложения.
- Блокировка экрана и разблокировка.
- Переключение между несколькими приложениями.
- Проверка корректной работы функций, которые должны выполняться в фоне — например, воспроизведение музыки, загрузка файлов, отслеживание шагов или приём уведомлений.
Обсудить статью, узнать больше можно в телеграм канале «Тестировщики нужны».