He estado tratando de mostrar un "¿Quieres salir?" tipo de diálogo cuando el usuario intenta salir de una actividad.
Sin embargo, no puedo encontrar los ganchos API apropiados. Activity.onUserLeaveHint()
Inicialmente parecía prometedor, pero no puedo encontrar una manera de evitar que la Actividad termine.
Respuestas:
En Android 2.0+ esto se vería así:
En versiones anteriores se vería así:
fuente
fuente
CustomTabActivity.super.onBackPressed
finish()
códigosuper.onBackPressed()
?MyActivity.super.onBackPressed();
y funciona bien para mí. También parece el enfoque más lógico: llamar al método que está anulando si desea el comportamiento estándar cuando el usuario toca "No".Modifiqué el código @ user919216 ... y lo hice compatible con WebView
fuente
Prefiero salir con un doble toque en el botón Atrás que con un Diálogo de salida.
En esta solución, muestra un brindis cuando regresa por primera vez, advirtiendo que otra presión de retroceso cerrará la aplicación. En este ejemplo menos de 4 segundos.
Token de: http://www.androiduipatterns.com/2011/03/back-button-behavior.html
fuente
Si no está seguro de si la llamada a "volver" saldrá de la aplicación, o llevará al usuario a otra actividad, puede ajustar las respuestas anteriores en un cheque, isTaskRoot (). Esto puede suceder si su actividad principal se puede agregar a la pila de respaldo varias veces, o si está manipulando su historial de pila de respaldo.
fuente
Usando Lambda:
También necesita establecer un lenguaje de nivel para admitir Java 8 en su gradle.build:
fuente
en China, la mayoría de las aplicaciones confirmarán la salida haciendo "clic dos veces":
fuente
Primero elimine
super.onBackPressed();
delonbackPressed()
método que y debajo del código:fuente
Me gusta un enfoque @GLee y usarlo con un fragmento como el siguiente.
Diálogo usando Fragmento:
fuente
fuente
Otra alternativa sería mostrar un
Toast
/Snackbar
en la primera pulsación hacia atrás pidiendo presionar nuevamente para salir , lo cual es mucho menos intrusivo que mostrar unaAlertDialog
para confirmar si el usuario desea salir de la aplicación.Puede usar el
DoubleBackPress Android Library
para lograr esto con unas pocas líneas de código. Ejemplo de GIF que muestra un comportamiento similar.Para comenzar, agregue la dependencia a su aplicación:
Luego, en su Actividad, implemente el comportamiento requerido.
Finalmente, establezca esto como el comportamiento en presionar hacia atrás.
fuente