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 salir de la aplicación cuando el usuario presiona el botón de retroceso en el componente de navegación?

“Estoy tratando de implementar este escenario. Tengo una pantalla de inicio de sesión con un botón para iniciar sesión. Cuando el usuario hace clic en el botón y se autentica, envío al usuario a la pantalla de perfil. El problema surge cuando el usuario presiona el botón de retroceso. En lugar de salir de la aplicación, vuelve a la pantalla de inicio de sesión, lo cual es malo. Si he tenido actividades, he llamado a finish() en la actividad de inicio de sesión al avanzar hacia la actividad de perfil, y cuando el usuario presiona retroceso, se sale de la aplicación. ¿Cómo hacer lo mismo usando navegación?”

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para lograr el mismo comportamiento con Navigation, puede usar el gráfico de navegación para definir el flujo de su aplicación.

    Primero, asegúrese de que la pantalla de inicio de sesión sea el destino de inicio de su gráfico de navegación.

    A continuación, cree un nuevo destino para la pantalla de perfil.

    Luego, agregue una acción en su destino de inicio de sesión que vaya al destino de perfil.

    En la acción, puede especificar que desea borrar la pila trasera, lo que significa que cuando el usuario presione el botón de retroceso desde la pantalla de perfil, no volverá a la pantalla de inicio de sesión.

    Para hacer esto, abra las propiedades de acción y establezca las opciones de lanzamiento en “SingleTop” y “ClearTask”.

    <action android:id="@+id/action_signIn_to_profile" app:destination="@id/profileFragment" app:launchsingletop="true" app:popupto="@+id/signInFragment" app:popuptoinclusive="true"></action>
    

    La bandera launchSingleTop = "true" le indica al sistema que cree una nueva actividad solo si no existe ya.

    Las banderas popUpTo="@+id/signInFragment" y popUpToInclusive="true" le indican al sistema que elimine todas las actividades de la pila trasera hasta e incluyendo la actividad de inicio de sesión.

    Con estos cambios, cuando el usuario hace clic en el botón de inicio de sesión y se autentica, será llevado a la pantalla de perfil. Y cuando presione el botón de retroceso, la aplicación se cerrará en lugar de volver a la pantalla de inicio de sesión.

Comments are closed.