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

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

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

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

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

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

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

adb shell cmd activity stop-app PACKAGE_NAME