Bonjour,
Je sais que la question a déjà été posé tellement de fois; mais j'aimerai faire part de mon soucis.

J'ai une application qui navigue entre plusieurs activity (y a pas forcément d'ordre précis); et donc j'aimerai que l'utilisateur puisse fermer l'application simplement avec un bouton 'Quit'; ce que j'ai fait.

Voici la méthode que j'ai toujours appliqué:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Intent intent = new Intent(Main.this, SOMECLASSNAME.class);
Main.this.startActivityForResult(intent, 0);
Quand je clique sur le bouton quitter:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
setResult(0);
finish();
Et donc, dans toutes activités:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(resultCode == 0) {
        finish();
    }
}
Le soucis, c'est que quand l'application se retrouve avec pas mal d’activité enchainé à la suite des autres; et donc quand l'utilisateur veut quitter l'application; certains téléphones perdent la boule au fait du nombre de retour arrière et fermeture que ce code implique.

Cependant, je vois partout sur les forums que la fonction System.exit(0) est déconseillé. Est ce vraiment mal de l'utiliser?