Bonnes pratiques concernant les interactions avec la carte de navigation

Cette page décrit les bonnes pratiques à suivre pour interagir avec la carte de navigation dans votre application.

Utilisez SupportNavigationFragment à la place de NavigationView, dans la mesure du possible.

SupportNavigationFragment est un wrapper qui facilite la gestion des rappels de cycle de vie NavigationView. Vous n'avez donc pas besoin de gérer ces rappels eux-mêmes. Cette méthode est moins sujette aux erreurs et est la méthode à privilégier pour utiliser Navigation dans votre application. Lorsque vous utilisez SupportNavigationFragment, veillez à ne pas appeler d'événements de cycle de vie NavigationView.

Si vous utilisez NavigationView, utilisez un ordre strict lors de l'appel des méthodes de cycle de vie.

NavigationView héberge la carte de navigation et suit de près les événements de cycle de vie en tant qu'activités et fragments Android, en effectuant des actions spécifiques lorsque ces événements de cycle de vie sont appelés. NavigationView exécute plusieurs initialisations sur NavigationView#onCreate et NavigationView#onStart, ainsi que des nettoyages sur NavigationView#onStop et NavigationView#onDestroy, ainsi que lorsque d'autres événements de cycle de vie sont traités.

Les méthodes de cycle de vie NavigationView ont la même signification que pour les activités ou les fragments Android. Par exemple, onCreate() de NavigationView se traduit approximativement et doit être appelé par des rappels de cycle de vie à partir de l'activité ou du fragment Android. Étant donné que les rappels de cycle de vie d'une NavigationView sont basés et appelés dans le même ordre que les rappels de cycle de vie Android, les méthodes NavigationView doivent être classées dans un ordre cohérent. Sinon, vous risquez de rencontrer des fuites de mémoire, des erreurs d'interface utilisateur, une mise à jour de l'emplacement et d'autres problèmes.

Pour en savoir plus sur le cycle de vie des activités Android, consultez la section Concepts de cycle de vie des activités dans la documentation destinée aux développeurs Android.

Le tableau suivant indique quand d'autres méthodes de cycle de vie doivent être appelées, après les méthodes de cycle de vie spécifiées :

Méthode du cycle de vie Invoqué où dans le cycle de vie de l'activité Appelée après quelle méthode de cycle de vie
onConfigurationChanged() Invoquée lorsque l'interface utilisateur est exécutée au premier plan et que la configuration change. Toujours après onStart()
onTrimMemory() Appelé lorsqu'une activité est en arrière-plan. Toujours après onPause()
onSaveInstance() Appelé avant la destruction d'une activité. Toujours après onStop()

N'appelez pas ces méthodes de cycle de vie plusieurs fois sans appeler d'abord la méthode de fermeture correspondante. En outre, n'oubliez pas que si certains de ces rappels de cycle de vie Android sont gérés par l'application elle-même et que NavigationView est ajouté au fragment après sa création ou son démarrage, l'application doit appeler les méthodes spécifiques dans le bon ordre afin d'initialiser correctement le SDK Navigation.

Pour obtenir des conseils supplémentaires sur l'utilisation de ces méthodes, consultez l'application de démonstration du SDK Navigation.

Si vous utilisez NavigationView, appelez les événements de cycle de vie à partir de l'activité ou du fragment, mais pas les deux.

Pour conserver l'ordre strict des méthodes de cycle de vie, appelez ces événements à partir des rappels de cycle de vie de l'activité ou du fragment, qui les reçoivent dans l'ordre. Cette approche garantit que les applications n'ont pas besoin de se coordonner entre les fragments et les activités, et de provoquer des appels en double.