es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo usar correctamente onBackPressed en mi aplicación.

Tengo 2 actividades A y B, dentro de la actividad B tengo 4 fragmentos.

Lo que necesito en mi aplicación
Dentro del cuarto fragmento tengo la opción de cerrar sesión, luego de cerrar sesión va a la actividad A y al presionar el botón de retroceso en mi móvil la aplicación se cerrará completamente.

El problema que enfrento en mi aplicación
Después de hacer clic en cerrar sesión, va a la actividad A y luego presiono el botón de retroceso, vuelve nuevamente al cuarto fragmento (página de cierre de sesión) y luego vuelvo a hacer clic en retroceso y mi aplicación se cierra completamente.

Dentro de la actividad B agregué lo siguiente para onBackPressed:

override fun onBackPressed() {
    if (supportFragmentManager.backStackEntryCount > 0) {
        super.onBackPressed()
    } else {
        finish()
    }
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para lograr el comportamiento deseado de cerrar completamente la aplicación al presionar el botón de retroceso en la Actividad A después de cerrar sesión en el cuarto fragmento de la Actividad B, puedes modificar el método onBackPressed() en la Actividad A de la siguiente manera:

    override fun onBackPressed() {
        super.onBackPressed()
        finishAffinity() // esto cerrará todas las actividades y borrará la pila
    }
    

    Esto asegurará que la aplicación se cierre por completo y no simplemente se devuelva a la actividad/fragmento anterior cuando se presiona el botón de retroceso en la Actividad A.

    Nota: Asegúrate de haber llamado a startActivity() para la Actividad A con la bandera Intent.FLAG_ACTIVITY_NEW_TASK y Intent.FLAG_ACTIVITY_CLEAR_TASK para borrar la pila de retroceso y comenzar la actividad como una nueva tarea al cerrar sesión desde el cuarto fragmento en la Actividad B.

Comments are closed.