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.

Foi útil?

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);
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top