Quitter/Finir une app/activité - android
J'ai 4 activités de dire Act1
, Act2
, Act3
et Act4
.
Un bouton en Act1 ouvre Act2, un bouton dans Act2 ouvre Loi3, un bouton dans la Loi3 ouvre Act4.
J'en veux deux choses à faire:
-
J'ai un bouton en Act4 qui dirige l'utilisateur à l'Act1, le problème c'est que lorsque l'utilisateur clique sur le dos en Act1, je veux fermer l'application au lieu de l'ouverture de l'Act4..
-
J'ai l'option dans le menu "quitter" dans toutes les activités quand à l'utilisateur de choisir, je veux fermer l'application au lieu de revenir à l'activité précédente.
Essayé d'utiliser finish();
mais il n'a pas à répondre à mes exigences.
- Essayez cette réponse
- vous pouvez trouver la réponse à votre question............. [découvrez cette..........][1] [1]:
stackoverflow.com/questions/11077020/... - Il y avait une presque copie exacte demandé un jour il y a aujourd'hui ici je recommande la lecture de ce post pour comprendre pourquoi vous ne devez pas mettre en œuvre ce que vous essayez.
- voici ce que vous devez............ [ici][1] [1]: stackoverflow.com/questions/11077020/...
- merci les gars vont essayer toutes celles qui n obtenez de retour 🙂
- Avez-vous obtenu ce dont vous avez besoin?
Vous devez vous connecter pour publier un commentaire.
Utilisez code ci-dessous dans votre
Act4
'thMenu.xml
's la sortie bouton -Et, dans votre première activité
onCreate()
méthode viens de mettre le code ci-dessous -Cela permettra de quitter votre application.
Consultez ce lien:
Cliquez ici
Vous pouvez utiliser :
dans toutes les activités pour fermer l'application.
Effacer le drapeau avant de revenir à l'activité précédente. Il pourrait vous aider.
terminer l'activité précédente lorsque vous allez à la prochaine activité d'écriture
finish();
aprèsstartactivity(intent);
et écrire le code ci-dessous pour commencer la première activité de la quatrième activité de l'événement clic du bouton.Et Écrire le Code ci-Dessous sur Votre Bouton de Sortie, Cliquez sur l'événement dans toutes les activités.
Placez ce code dans votre application:
Si vous avez une autre activité derrière ( dans l'activité de l'application de la pile),
vous pouvez utiliser
finish()
à la sortie de l'activité en cours.Cependant, la fonction retour en arrière trop supposons que pour supprimer l'activité actuelle de votre activité de l'application de la pile.
Dans mon expérience, il est très peu fiable pour s'appuient sur les activités de la pile de retour ( dans l'activité de l'application de la pile). Parce que j'ai utilisé pour sortir de chaque activité, quand je aller plus loin.
Dans votre cas:
La méthode ci-dessus seront de sortie de toutes les activités.
Cependant, si vous souhaitez exécuter du code dans le fond, il est préférable de s'appuyer sur un "Service" plutôt qu'une "Activité". Vous pouvez laisser le "Service" à la sortie après avoir fait son travail assigné.
L'approche que j'utilise est de commencer toutes les activités enfant avec
startActivityForResult
. Ensuite, je peux putExtra("ÉTAT", some_value) à la sortie de l'enfant et utiliser la valeur de l'état de déterminer quoi faire jusqu'à travers les parents.Si je veux quitter l'application à partir d'une profondeur de l'enfant, "l'ÉTAT" serait "sortie" et chaque enfant dans la hiérarchie serait tout simplement obtenir le StringExtra pour "quitter", faire un putExtra("ÉTAT", "quitter") et d'appeler finish (), puis l'application d'appel finish() à la fin. Vous pouvez utiliser cette fonction pour obtenir un état souhaité.
À l'aide de startActivityForResult pour passer des messages de cette manière évite d'avoir à passer maladroit références en bas, dans l'enfant des activités et simplifie votre démarche de fixation de l'état souhaité de l'application.
Utilisation
android:noHistory = "true"
dans votre AndroidManifest.xml fichierJ'utilise cette méthode :
1. Créer statique de l'activité dans la première activité qui vous fermez la
encore une activité(s).
2. Puis l'appeler dans la méthode statique comme cela, il va fermer l'application, d'où vous appeler.
Bac ce un
Commencer
Activity1
à l'aide de l'intention et essayez de l'appelerfinishAffinity()
dansonBackPressed()
deActivity1
.