studio programacion móviles libro desarrollo desarrollar curso boton aprende aplicaciones android android-activity activity-finish

programacion - ¿Cómo presionar el botón Atrás en Android programáticamente?



manual de programacion android pdf (4)

A veces es útil anular el método onBackPressed () porque en el caso de que trabaje con fragmentos y esté cambiando entre ellos si presiona el botón back regresa al fragmento anterior.

En mi aplicación tengo una funcionalidad de cierre de sesión. Si el usuario hace clic en cerrar sesión, irá a la pantalla de inicio. Ahora salgo de mi aplicación presionando el botón Atrás. Pero lo que quiero es que necesito salir automáticamente (es decir, programáticamente) igual que la funcionalidad del botón de retroceso. Sé que al llamar a finish () hará la funcionalidad. Pero la cosa es que va a la actividad anterior.


Llamar onBackPressed después de onBackPressed en tu actividad.


No necesita sobrescribir onBackPressed() : ya está definido como la acción que realizará su actividad de forma predeterminada cuando el usuario presiona el botón Atrás. Así que simplemente llame onBackPressed() siempre que desee "presionar programáticamente" el botón Atrás.

Sin embargo, eso solo daría como resultado que finish() siendo llamado;)

Creo que estás confundido con lo que hace el botón Atrás. De forma predeterminada, es solo una llamada para finish() , por lo que solo sale de la actividad actual. Si tiene algo detrás de esa actividad, se mostrará esa pantalla.

Lo que puede hacer es iniciar su actividad desde el inicio de sesión, agregar un indicador CLEAR_TOP para que la actividad de inicio de sesión no esté allí cuando salga del suyo.


onBackPressed() es compatible desde: API Nivel 5

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK)) { onBackPressed(); } } @Override public void onBackPressed() { //this is only needed if you have specific things //that you want to do when the user presses the back button. /* your specific things...*/ super.onBackPressed(); }