Processar a interrupção iniciada pelo usuário de apps que executam serviços em primeiro plano

No Android 13 (nível 33 da API) e versões mais recentes, os usuários podem concluir um fluxo de trabalho na gaveta de notificações para interromper um app que tem serviços em primeiro plano em andamento, independente da versão do SDK de destino. Essa funcionalidade, chamada de gerenciador de tarefas, mostra uma lista de apps que estão executando um serviço em primeiro plano.

Na parte de baixo da gaveta de notificações, há um botão que indica o
    número de apps sendo executados em segundo plano. Ao pressionar
    esse botão, uma caixa de diálogo vai ser exibida, listando os nomes de diferentes apps. O
    botão "Parar" fica à direita de cada app.
Figura 1. Fluxo de trabalho do gerenciador de tarefas em dispositivos com o Android 13 ou versões mais recentes.

A lista tem o rótulo Apps ativos. Ao lado de cada app há um botão Parar. A Figura 1 ilustra o fluxo de trabalho do gerenciador de tarefas em um dispositivo com o Android 13.

Quando o usuário pressiona o botão Parar ao lado do app no gerenciador de tarefas, as seguintes ações ocorrem:

  • O sistema remove o app da memória. Portanto, todo o app é interrompido, e não apenas o serviço em execução em primeiro plano.
  • O sistema remove a pilha de retorno de atividade do app.
  • A reprodução de mídia é interrompida.
  • A notificação associada ao serviço em primeiro plano é removida.
  • O app permanece no histórico.
  • Os jobs programados são executados no horário programado.
  • Os alarmes tocam no horário ou período programado.

Para testar se o app está se comportando conforme o esperado ao ser interrompido pelo usuário, execute o comando ADB abaixo em uma janela de terminal:

adb shell cmd activity stop-app PACKAGE_NAME