J'ai essayé d'afficher un "Voulez-vous quitter?" type de boîte de dialogue lorsque l'utilisateur tente de quitter une activité.
Cependant, je ne trouve pas les crochets API appropriés. Activity.onUserLeaveHint()
Au début, cela semblait prometteur, mais je ne trouve pas de moyen d'empêcher l'activité de se terminer.
Réponses:
Dans Android 2.0+, cela ressemblerait à:
Dans les versions antérieures, cela ressemblerait à:
la source
la source
CustomTabActivity.super.onBackPressed
finish()
code parsuper.onBackPressed()
?MyActivity.super.onBackPressed();
et cela fonctionne bien pour moi. Il semble que l'approche la plus logique soit aussi - d'appeler la méthode que vous remplacez si vous voulez le comportement standard lorsque l'utilisateur appuie sur "Non".Ont modifié le code @ user919216 .. et l'ont rendu compatible avec WebView
la source
Je préfère quitter avec un double tap sur le bouton de retour qu'avec une boîte de dialogue de sortie.
Dans cette solution, il affiche un toast lorsque vous revenez pour la première fois, avertissant qu'une autre pression arrière fermera l'application. Dans cet exemple, moins de 4 secondes.
Jeton de: http://www.androiduipatterns.com/2011/03/back-button-behavior.html
la source
Si vous n'êtes pas sûr si l'appel à "retour" quittera l'application ou mènera l'utilisateur à une autre activité, vous pouvez envelopper les réponses ci-dessus dans une vérification, isTaskRoot (). Cela peut se produire si votre activité principale peut être ajoutée plusieurs fois à la pile arrière, ou si vous manipulez l'historique de votre pile arrière.
la source
Utilisation de Lambda:
Vous devez également définir un langage de niveau pour prendre en charge java 8 dans votre gradle.build:
la source
en Chine, la plupart des applications confirmeront la sortie en "cliquant deux fois":
la source
Retirez d'abord
super.onBackPressed();
de laonbackPressed()
méthode le code ci-dessous:la source
J'aime une approche @GLee et je l'utilise avec un fragment comme ci-dessous.
Dialogue utilisant Fragment:
la source
la source
Une autre alternative serait d' afficher un
Toast
/Snackbar
lors de la première pression arrière en demandant à nouveau d'appuyer sur Quitter , ce qui est beaucoup moins intrusif que de montrer unAlertDialog
pour confirmer si l'utilisateur veut quitter l'application.Vous pouvez utiliser le
DoubleBackPress Android Library
pour y parvenir avec quelques lignes de code. Exemple GIF montrant un comportement similaire.Pour commencer, ajoutez la dépendance à votre application:
Ensuite, dans votre activité, implémentez le comportement requis.
Enfin, définissez-le comme comportement sur la presse arrière.
la source