Question

Comment puis-je tuer toutes les activités de ma demande?

J'ai essayé d'utiliser this.finish() mais il tue une seule activité.

En fait, je voudrais quand l'utilisateur touche le bouton de retour (dans une seule des activités), l'application de faire la même chose que s'il appuie sur le bouton Home.

Était-ce utile?

La solution

Vous pouvez définir android:noHistory="true" pour toutes vos activités à AndroidManifest.xml. Par conséquent, ils ne vont pas se placer sur la pile de l'histoire et le bouton retour vous amènera à l'écran d'accueil.

Autres conseils

Cela a été discuté à plusieurs reprises auparavant. Essentiellement, il n'y a aucun moyen facile, et il n'y a pas censé être. Les utilisateurs Appuyez sur Accueil pour quitter votre application (comme vous l'avez souligné).

Substituez la méthode onBackPressed, et faire ce qui se passe quand ils appuient sur le bouton d'accueil. Ce n'est pas vraiment fermer toutes les activités, mais ce que vous demandez est que la presse arrière dans une certaine activité émule le bouton d'accueil.

@Override
public void onBackPressed() {
    Intent i = new Intent(Intent.ACTION_MAIN);
    i.addCategory(Intent.CATEGORY_HOME);
    startActivity(i);
}

Mise en place que dans une activité rentreront chez eux lorsque vous appuyez sur le dos. Notez que la mise en œuvre originale de la méthode de onBackPressed comprend un appel à super, il est retiré sur le but. Je sais que cette question est super vieux, mais il demande explicitement autre chose

Pour tuer toutes les activités, utilisez ce code sur onBackPressed.

@Override
public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount()>0) {
       getFragmentManager().popBackStackImmediate();            
    } else {
          finishAffinity();
          System.exit(0);
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top