Como matar todas as atividades do meu aplicativo?
-
25-09-2019 - |
Pergunta
Como posso matar todas as atividades do meu aplicativo?
Eu tentei usar this.finish()
Mas isso apenas mata uma atividade.
Na verdade, eu gostaria quando o usuário tocar no botão traseiro (em apenas uma das atividades), o aplicativo para fazer o mesmo que se ele pressionasse o botão doméstico.
Solução
Você pode definir android:noHistory="true"
Para todas as suas atividades em androidmanifest.xml. Portanto, eles não se colocarão na pilha de histórico e o botão traseiro o levará à tela inicial.
Outras dicas
Isso já foi discutido muitas vezes antes. Essencialmente, não há maneira fácil, e não deve haver. Os usuários pressionam para casa para sair do seu aplicativo (como você apontou).
Substituir o onBackPressed
Método e faça o que acontece quando eles pressionam o botão doméstico. Não está realmente fechando todas as atividades, mas o que você está pedindo é que a imprensa traseira em uma certa atividade emula o botão doméstico.
@Override
public void onBackPressed() {
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
startActivity(i);
}
Colocar isso em uma atividade vai para casa quando você pressionar. Observe que a implementação original do onBackPressed
O método inclui uma chamada para super, é removida de propósito. Eu sei que essa pergunta é super velha, mas ele está perguntando explicitamente outra coisa
Para matar todas as atividades, use esse código no pressionado.
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount()>0) {
getFragmentManager().popBackStackImmediate();
} else {
finishAffinity();
System.exit(0);
}
}