Cuando el usuario desea salir de todas las actividades abiertas , debe presionar un botón que carga la primera Actividad que se ejecuta cuando se inicia su aplicación, borrar todas las demás actividades y luego finalizar la última actividad restante. Ejecute el siguiente código cuando el usuario presione el botón de salida. En mi caso, LoginActivity
es la primera actividad en ejecutar mi programa.
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
El código anterior borra todas las actividades excepto LoginActivity
. Luego ponga el siguiente código dentro de LoginActivity
's onCreate(...)
, para escuchar cuándo LoginActivity
se recrea y se pasa la señal' EXIT ':
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
¿Por qué es tan difícil hacer un botón de salida en Android?
Android se esfuerza por disuadirlo de tener un botón de "salida" en su aplicación, porque quieren que al usuario nunca le importe si los programas que utilizan se ejecutan en segundo plano o no.
Los desarrolladores del sistema operativo Android quieren que su programa pueda sobrevivir a un apagado inesperado y apagar el teléfono, y cuando el usuario reinicia el programa, retoman el punto donde lo dejaron. Por lo tanto, el usuario puede recibir una llamada telefónica mientras usa su aplicación y abrir mapas que requieren que su aplicación se libere para obtener más recursos.
Cuando el usuario reanuda su aplicación, retoma justo donde lo dejó sin interrupción. Este botón de salida está usurpando el poder del administrador de actividades, lo que puede causar problemas con el ciclo de vida del programa Android administrado automáticamente.