Prácticas recomendadas para la interacción con el mapa de navegación

En esta página se explican las prácticas recomendadas para interactuar con el mapa de navegación en tu app.

Usa SupportNavigationFragment en lugar de NavigationView siempre que sea posible.

SupportNavigationFragment es un wrapper para la comodidad de controlar las devoluciones de llamada del ciclo de vida de NavigationView, por lo que no necesitas administrarlas por tu cuenta. Este método es menos propenso a errores y es la forma preferida de usar Navigation en tu app. Cuando uses SupportNavigationFragment, asegúrate de no invocar eventos de ciclo de vida de NavigationView.

Si usas NavigationView, usa un orden estricto cuando invoques métodos de ciclo de vida

NavigationView aloja el mapa de Navigation y sigue de cerca los eventos del ciclo de vida como actividades y fragmentos de Android, y realiza acciones específicas cuando se invocan estos eventos del ciclo de vida. NavigationView ejecuta varias inicializaciones en NavigationView#onCreate y NavigationView#onStart, y las limpiezas en NavigationView#onStop y NavigationView#onDestroy, así como cuando se se procesan los eventos de ciclo de vida.

Los métodos de ciclo de vida de NavigationView tienen el mismo significado que para las actividades o fragmentos de Android. Por ejemplo, onCreate() de NavigationView se traduce de manera aproximada y debe invocarse mediante devoluciones de llamada de ciclo de vida desde la actividad o el fragmento de Android. Dado que las devoluciones de llamada del ciclo de vida de NavigationView se basan se activan e invocan en el mismo orden que las devoluciones de llamada de ciclo de vida de Android, el orden de estos métodos NavigationView. De lo contrario, es posible que experimentes fugas de memoria, errores de IU, que no se actualice la ubicación y otros problemas.

Para obtener más información sobre el ciclo de vida de la actividad de Android, consulta la Conceptos del ciclo de vida de la actividad en la documentación para desarrolladores de Android.

La siguiente tabla muestra cuándo se deben invocar otros métodos del ciclo de vida, después de métodos de ciclo de vida especificados:

Método del ciclo de vida En qué parte del ciclo de vida de la actividad se invoca ¿Se invoca después de qué método de ciclo de vida?
onConfigurationChanged() Se invoca cuando la IU está en primer plano y cambia la configuración. Siempre después de onStart()
onTrimMemory() Se invoca cuando una actividad está en segundo plano. Siempre después de onPause()
onSaveInstance() Se invoca antes de que se destruya una actividad. Siempre después de onStop()

No llames a estos métodos del ciclo de vida varias veces sin llamar primero al método de cierre correspondiente. Además, ten en cuenta que, si la app misma administra algunas de estas devoluciones de llamada del ciclo de vida de Android y se agrega NavigationView al fragmento después de la creación o el inicio, la app debe llamar a los métodos específicos en el orden correcto para inicializar correctamente el SDK de Navigation.

Para obtener más orientación sobre el uso de estos métodos, consulta la demostración del SDK de Navigation. de la app.

Si usas NavigationView, invoca eventos de ciclo de vida desde la actividad o el fragmento, no ambos.

Para mantener el orden estricto de los métodos de ciclo de vida, invoca estos eventos desde las devoluciones de llamada del ciclo de vida de la actividad o del fragmento, que reciben estos eventos en orden. Este enfoque garantiza que las apps no deban coordinarse y las actividades, y causar llamadas duplicadas.