Quando o app está em segundo plano, o Android pode encerrar o processo dele para liberar memória, sem aviso e sem relatório de crash. O usuário volta e espera continuar de onde parou. Se o estado vivia só na memória, ele cai na tela inicial com o que digitou perdido. Esse bug é comum porque nunca acontece num celular de desenvolvedor com muita memória livre, e é fácil de reproduzir sob demanda.
Duas formas de simular
Opção 1: Não manter atividades. Nas Opções do desenvolvedor (toque sete vezes em Número da versão em Sobre o telefone para desbloqueá-las), ative Não manter atividades. Cada tela que você deixa é destruída. Lembre de desligar depois. Isso testa a recriação de telas, que é parente próximo do encerramento de processo.
Opção 2: Encerrar o processo. Mande o app para o segundo plano (botão home, não deslizar para fechar nos recentes) e depois rode no computador, com o adb:
adb shell am kill <seu.nome.do.pacote>
Depois reabra o app pelos recentes. O comando só encerra um processo que está em segundo plano; se nada acontecer, o app estava em primeiro plano. Deslizar o app para fora dos recentes é um force-stop feito pelo usuário, um caso diferente: o sistema não restaura o estado depois disso.
Checklist
Execute cada caso, encerre o processo, volte e compare.
- Formulário com texto digitado. Esperado: o texto continua lá, ou o usuário é avisado com clareza do que foi perdido.
- Tela profunda. Abra uma tela de detalhes três níveis abaixo. Esperado: você volta a essa tela, não à inicial.
- Posição de rolagem e aba. Esperado: mesma aba, aproximadamente a mesma posição.
- Itens selecionados e filtros. Esperado: a seleção e o filtro ativo continuam.
- Fluxo de várias etapas, como integração, checkout ou assistente de configuração. Esperado: a etapa e as respostas anteriores permanecem. É aqui que os usuários mais perdem.
- Diálogo ou painel inferior aberto. Esperado: ou restaurado ou fechado de forma limpa, nunca meio desenhado.
- Estado de login. Esperado: o usuário continua conectado.
- Tarefas em andamento. Upload, download, cronômetro. Esperado: retomam, recomeçam com segurança ou mostram uma falha clara, sem duplicatas.
- Desvio para uma permissão ou tela do sistema. Saia para um diálogo do sistema, encerre, volte. Esperado: o app continua o fluxo.
- Link profundo ou intent de compartilhamento. Abra a partir de um link, encerre, volte. Esperado: a tela correta.
- Abertura a frio depois de muito tempo. Deixe o app por horas e volte. Esperado: ele inicia sem travar por causa de dados antigos.
O que relatar
Os passos antes do encerramento, o método exato usado, o que o usuário viu ao voltar e o nome da tela. Mencione se o aparelho estava com pouca memória, pois isso pode disparar o problema naturalmente.
Como corrigir
Salve o que o usuário sentiria falta, nos lugares que o Android fornece para estado salvo, e mantenha os dados duráveis no armazenamento, não na memória. Teste de novo com os mesmos passos.
Limites
O comportamento real com pouca memória varia entre aparelhos. A simulação verifica o seu tratamento, não com que frequência o sistema fará isso.
Visão geral: Teste de apps Android. Relacionados: rotação e mudanças de configuração e economia de bateria e Doze.
Comece grátis no AppReviewX e peça aos testadores que sigam estes passos e relatem de forma estruturada.