Обрабатывать инициируемую пользователем остановку приложений, запускающих службы переднего плана.

Начиная с Android 13 (уровень API 33), пользователи могут завершить рабочий процесс из панели уведомлений , чтобы остановить приложение, которое использует активные службы переднего плана, независимо от целевой версии SDK этого приложения. Эта функция, называемая диспетчером задач , отображает список приложений, которые в данный момент используют активные службы переднего плана.

В нижней части панели уведомлений находится кнопка, которая показывает количество приложений, работающих в данный момент в фоновом режиме. При нажатии этой кнопки открывается диалоговое окно со списком названий различных приложений. Кнопка «Остановить» находится справа от каждого приложения.
Рисунок 1. Рабочий процесс диспетчера задач на устройствах под управлением Android 13 или выше.

Этот список называется «Активные приложения» . Рядом с каждым приложением находится кнопка « Остановить» . На рисунке 1 показан рабочий процесс диспетчера задач на устройстве под управлением Android 13.

Когда пользователь нажимает кнопку «Остановить» рядом с вашим приложением в диспетчере задач, происходят следующие действия:

  • Система удаляет ваше приложение из памяти. Таким образом, останавливается всё приложение , а не только запущенная служба переднего плана.
  • Система удаляет обратный стек активности вашего приложения.
  • Любое воспроизведение мультимедиа останавливается.
  • Уведомление, связанное с активной службой, удаляется.
  • Ваше приложение останется в истории.
  • Запланированные задания выполняются в запланированное время.
  • Будильники срабатывают в запланированное время или в определенное временное окно.

Чтобы проверить, что ваше приложение ведет себя ожидаемым образом во время и после того, как пользователь останавливает его, выполните следующую команду ADB в окне терминала:

adb shell cmd activity stop-app PACKAGE_NAME