Middle
241
questionbank

Что такое фоновый сервис (foreground service) в Android?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Фоновый сервис (foreground service) — это тип сервиса в Android, имеющий повышенный приоритет и видимый пользователю. Он выполняет задачи, которые заметны для пользователя и не должны прерываться при экономии заряда батареи или нехватке памяти.

Ключевые характеристики:

  • Отображает постоянное уведомление в области уведомлений. Пользователь должен иметь возможность видеть, что сервис запущен, и потенциально взаимодействовать с ним.
  • Система с меньшей вероятностью уничтожит фоновый сервис по сравнению с обычным фоновым сервисом или потоком ввиду его высокого приоритета.
  • Требует специального разрешения FOREGROUND_SERVICE.
  • Используется для задач типа воспроизведения музыки, отслеживания местоположения, синхронизации данных в реальном времени.

Жизненный цикл:

  1. Запускается с помощью startForegroundService().
  2. В течение 5 секунд необходимо вызвать startForeground(notificationId, notification) для перевода сервиса в фоновый режим. Иначе система может остановить сервис и выкинуть ForegroundServiceDidNotStartInTimeException.
  3. Останавливается с помощью stopSelf() или stopService() из другого компонента, или принудительно пользователем через уведомление. При остановке необходимо вызвать stopForeground(bool removeNotification) для удаления уведомления.

Пример запуска:

kotlin

Внутри сервиса:

kotlin