Gerenciador de tarefas dos serviços em primeiro plano (FGS)

O Android 13 (API de nível 33) permite que os usuários interrompam os serviços em primeiro plano na gaveta de notificações, independentemente da versão do SDK de destino. Essa nova funcionalidade, chamada de gerenciador de tarefas dos serviços em primeiro plano (FGS, na sigla em inglês), mostra uma lista de apps que estão executando serviços em primeiro plano. 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 do FGS em um dispositivo com o Android 13:

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 do FGS em dispositivos com o Android 13.

A ação do usuário interrompe toda a atividade do app

Quando o usuário pressiona o botão Parar ao lado do app no gerenciador de tarefas do FGS, toda a atividade do app é interrompida, e não apenas o serviço em execução em primeiro plano.

Comparação entre comportamentos gerados pelas ações do usuário "deslizar para cima" e "forçar fechamento"

Consulte a tabela abaixo para ver as diferenças entre o gerenciador de tarefas do FGS e os recursos existentes: "deslizar para cima" na tela Recentes e "forçar o fechamento" de um app com comportamento indesejado.

Gerenciador de tarefas de FGS Deslizar para cima Forçar fechamento
Remove o app da memória imediatamente
A reprodução de mídia é interrompida
FGS interrompido / notificação associada removida
Remove a backstack da atividade
Remove o app do histórico
Os jobs programados são cancelados
Os alarmes são cancelados

Nenhum callback é enviado quando o usuário interrompe o app no gerenciador de tarefas do FGS

O sistema não envia callbacks ao app quando o usuário pressiona o botão Parar. Quando o app for reiniciado, pode ser útil verificar o novo motivo REASON_USER_REQUESTED que faz parte da API ApplicationExitInfo existente.

Solicitações do sistema relacionadas a serviços em primeiro plano de longa duração

Se o sistema detectar que o app executa um serviço em primeiro plano por um longo período (pelo menos 20 horas em um intervalo de 24 horas), o sistema vai enviar uma notificação ao usuário exibindo a opção de abrir o gerenciador de tarefas do FGS.

Saiba mais sobre a nova notificação do sistema que alerta os usuários sobre serviços em primeiro plano de longa duração.

Isenções

O sistema oferece vários níveis de isenção para determinados tipos de apps, apresentados nas seções abaixo.

As isenções são aplicadas por app, e não por processo. Se o sistema isentar um processo em um app, todos os outros processos nesse app também vão ser isentos.

Isenções de exibição no gerenciador de tarefas do FGS

Os apps abaixo podem executar um serviço em primeiro plano sem que apareçam no gerenciador de tarefas:

Isenções para que o app não possa ser interrompido pelo usuário

Quando os tipos de apps apresentados abaixo executam um serviço em primeiro plano, eles aparecem no gerenciador de tarefas do FGS, mas o botão Parar não é mostrado ao lado do nome do app para o usuário:

Teste

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