2

Comment puis-je tuer toutes les activités de mon application?Comment tuer toutes les activités de mon application?

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.

+5

Voir http://stackoverflow.com/questions/2033914/quitting-an-application-is-that-frowned-upon/2034238#2034238 – CommonsWare

Répondre

2

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

1

Cela a été discuté plusieurs fois auparavant. Essentiellement, il n'y a pas de moyen facile, et ce n'est pas censé être. Les utilisateurs cliquent sur Accueil pour quitter votre application (comme vous l'avez signalé).

0

substituez la méthode onBackPressed, et faire ce qui se passe lorsqu'ils appuient sur le bouton d'accueil. Ce n'est pas vraiment la fermeture de toutes les activités, mais ce que vous demandez, c'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); 
} 

En plaçant cela dans une activité rentrez chez vous lorsque vous appuyez sur retour. Notez que l'implémentation d'origine de la méthode onBackPressed inclut un appel à super, il est supprimé volontairement. Je sais que cette question est super vieux, mais il demande explicitement quelque chose d'autre

0

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); 
    } 
}