Android - Afficher la dernière activité consultée lorsque vous appuyez sur (Bouton d'accueil -> Raccourci d'application)

StackOverflow https://stackoverflow.com/questions/6364418

Question

Je suis venu faire l'éternelle question, qui jusqu'à présent n'a pas trouvé de solution, j'ai cherché sur internet le même problème mais trouvé une solution définitive à ce problème.

lorsque j'ai 2 activités ouvertes et que je tire sur le 'bouton Accueil' puis que j'appuie sur le raccourci de mon application, cela me montre à nouveau la première activité (l'activité du lanceur), puis pour revenir à l'activité qui était affichée,Je dois appuyer sur le bouton de retour.

quelle est la solution à ce problème?

Je veux appuyer sur le raccourci de mon application (après avoir quitté mon application en appuyant sur le bouton Accueil) pour me montrer que la dernière activité a été affichée, à la place il me montre la première activité (lanceur d'activité).

Merci d'avance.

Était-ce utile?

La solution

C'est le comportement attendu. Le lanceur lancera l'activité avec le filtre android.intent.action.MAIN.

Il existe cependant des moyens de contourner ce problème. Une solution très simple est d'avoir un indicateur booléen mRunning que vous définissez sur true au lancement. Si true, alors sur la méthode onStart(), vous démarrez une intention de lancer votre deuxième Activity; si faux, continuez avec setContentView().

Si vous devez revenir à plusieurs activités, une approche réalisable consiste à enregistrer l'activité actuelle dans SharedPreferences et à la lancer de la même manière.

Alternativement, votre activité principale peut être simplement une activité d'entrée dont la seule tâche est de démarrer la dernière activité utilisée.

MODIFIER : j'ai trouvé cette question en double: Comment faire pour qu'une application Android revienne à la dernière activité ouverte lorsqu'elle est relancée? qui a une bien meilleure analyse que la mienne.

Autres conseils

Votre application est toujours en cours d'exécution en arrière-plan lorsque vous appuyez sur le bouton d'accueil.finish() l'activité lorsque vous appuyez sur le bouton Accueil si vous souhaitez revenir en arrière.

Selon que votre activité principale est lancée ou non par une autre activité, ou uniquement par l'icône de l'application, vous pouvez utiliser une solution beaucoup plus simple.Si votre activité principale n'est lancée que par l'icône de l'application, vous pouvez utiliser isTaskRoot () pour vérifier si votre activité principale est lancée comme un nouveau départ pour l'application, ou si l'utilisateur revient et que l'activité principale est placée au-dessus d'autres activités que vous souhaitez afficher.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (! isTaskRoot()) {
        finish();
    } else {
        ...
    }
}

Vous pouvez utiliser startActivityForResult replace pour startActivity lorsque vous souhaitez ouvrir une autre activité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top