Dans mon application j'ai plusieurs activités, l'écran principal a 4 boutons qui commencent chacun une activité différente. Donc, l'un d'entre eux est une activité de recherche, une fois qu'il cherche, il vous montre une activité de résultat. Cette activité de résultat peut être atteint par d'autres activités, donc en quelque chose de général comme celui-ci:A propos du cycle de vie des activités
Main activity -> Search activity -> Result activity
Main acitivty -> someother activity -> Result activity
Maintenant, si je suis arrivé à cette activité de résultat et appuyez de nouveau une ou deux fois, et après appuyez sur la touche Accueil, il affichera l'écran d'accueil. Mais si je veux revenir à mon application en maintenant le bouton Accueil et en cliquant sur mon application, je reviendrai toujours à l'activité Résultat, quelle que soit l'activité que j'utilisais. Et si j'appuie de nouveau, cela me ramènera à l'écran d'accueil. Si je l'essaie à nouveau, cela me ramènera à l'activité Résultat. La seule façon d'éviter cela est de démarrer l'application en cliquant sur l'icône de l'application. Et cela m'amène à la dernière activité que j'utilisais et il se souvient de l'état, donc si je repasse à nouveau, cela ne me mène pas à l'écran d'accueil, mais plutôt à l'activité précédente. Pour illustrer ceci:
Main activity -> Search activity -> result activity --back--> Search activity --Home Button--> Home Screen --Hold Home and select the app --> Result activity --back--> Home Screen
--Click application icon--> Search activity --back--> Main activity
Une autre chose qui se passe est que si j'appuie sur le bouton Home pendant l'activité Résultat, et commencer l'application en cliquant sur l'icône, il me faudra à l'activité avant le le résultat d'un .
Pourquoi cela se produit-il? Des solutions de contournement?
Comment vous lancent votre activies? Des indicateurs particuliers que vous utilisez dans vos intentions? –
Oui, j'ajoute un drapeau pour démarrer l'activité Résultat, et je passe aussi quelques données. Quelque chose comme ceci: Intention intention = new Intent (this, Result.class); intention.putExtra ("RESULT", aString); intention.addFlags (R.id.flag_search); startActivity (intention); –
En regardant dedans, la méthode intent.addFlags (R.id.flag_search) provoque cela, en commentant la ligne ou en utilisant n'importe quel int au lieu de R.id.flag_search résout le problème. Hmmm maintenant pourquoi je ne peux pas y stocker mes drapeaux? Dois-je utiliser une classe statique pour stocker les différents drapeaux? –