Android fermer les app en arrière quand le bouton est pressé
Salut j'ai fait une modification dans mon application qui est je veux fermer mon application après avoir cliqué sur le bouton de retour. Cela peut sembler droit commun? mais c'est ce qui se passe exactement à mon application. J'ai 3 écrans: Page d'accueil, Page de Jeu et le Score de la Page. après avoir appuyé sur le bouton démarrer à partir de la page de Démarrage, il va commencer à la Page de Jeu de l'Intention. Après avoir terminé le jeu la Page de Jeu de passer ensuite l'intention d'en Marquer la Page et quand l'arrière est enfoncé à partir de la Partition de la Page, l'objectif sera transmis sur la Page de Démarrage comme ceci:
- Page de démarrage -> Page de Jeu
- Jeu Page -> Score Page
- Score de la Page (quand l'arrière est enfoncé) -> Page de Démarrage
Maintenant, après je retourne à la Page de Démarrage lorsque j'ai appuyé sur le bouton de retour de nouveau à la place de quitter l'application, elle va revenir à la Partition de la Page et encore Si j'ai appuyé sur le bouton de retour, il va aller à la Page de Démarrage de nouveau de faire une boucle sans fin. J'ai placé ce code de ma Page de Démarrage mais ça ne résout pas mon problème:
@Override
public void onBackPressed() {
Startup.this.finish();
}
Ce que je dois modifier le flux de mes intentions ou il y a une solution possible pour celui-ci?
OriginalL'auteur KaHeL | 2011-11-24
Vous devez vous connecter pour publier un commentaire.
Ou vous pouvez simplement utiliser le drapeau de l'Intention.FLAG_ACTIVITY_CLEAR_TOP lors de l'appel de la page de Démarrage de la Partition de la page.
OriginalL'auteur peceps
il suffit d'ajouter ce fragment de code dans votre page de jeu
cela permettra de finir le jeu avant de le lancer, le score de l'activité.
Maintenant, lorsque vous voulez mettre fin à la partition de l'activité trop, ne pas lancer une nouvelle intention de commencer l'activité, mais juste à la fin de votre score d'activité (ce que cela signifie, laissez la backpressed rappel sur sa valeur par défaut.
cela fonctionne parce que si vous fermez l'activité du jeu à sa fin naturelle, le deuxième plus haut de l'activité dans votre pile sera le début d'une. Cela vous permet de finir le plus haut de l'activité (le score) pour récupérer la page de démarrage.
REMARQUE: cette solution ne fonctionne que dans votre flux de travail actuel. si vous ajoutez une autre page (exemple de la start-jeu-gameover-score) vous avez besoin de reproduire ce comportement dans tous les non-activité externe (dans l'exemple précédent, dans le jeu et gameover pages)
j'ai édité ma réponse, merci de la lire à nouveau 🙂
OriginalL'auteur STT LCU
en page d'accueil quand startActivity pour le Jeu Page, procédez de la manière suivante
dans la Page de Jeu quand startActivity pour le Score de la Page d'effectuer les opérations suivantes
dans le Score de la Page lorsque vous appuyez sur BackButton effectuer les opérations suivantes
ce sera la cause de début de cette activité pour être détruits et recréés (inutilement) à toutes les applications de la boucle.
s'il veut aller à la page d'accueil de ScorePage
OriginalL'auteur Rasel
Chaque fois que vous avez appelé une nouvelle activité avec de nouveaux intention d'écrire ensuite
après
startActivity()
.Veuillez vérifier après l'écriture
finish()
lorsque vous avez appelé une nouvelle activité.L'un de l'autre option.
Écrire launchmode dans votre
manifest
fichier ces activité appelée qu'une seule foisManifeste Fichier -- >
<activity android:name="Main" android:launchMode="singleTask" />
OriginalL'auteur SBJ