Best Practices für die Interaktion mit Navigationskarten

Auf dieser Seite werden Best Practices für die Interaktion mit der Navigationskarte in Ihrer App erläutert.

Nach Möglichkeit immer SupportNavigationFragment anstelle von NavigationView verwenden

SupportNavigationFragment ist ein Wrapper, mit dem die NavigationView-Lebenszyklus-Callbacks einfacher verarbeitet werden können. Sie müssen diese Callbacks also nicht selbst verwalten. Diese Methode ist weniger fehleranfällig und die bevorzugte Methode, um die Navigation in Ihrer App zu verwenden. Wenn Sie SupportNavigationFragment verwenden, rufen Sie keine NavigationView-Lebenszyklus-Events auf.

Bei Verwendung von NavigationView strenge Reihenfolge beim Aufrufen von Lebenszyklusmethoden einhalten

NavigationView hostet die Navigationskarte und folgt den Lebenszyklus-Events wie Android-Aktivitäten und -Fragmenten. Dabei werden bestimmte Aktionen ausgeführt, wenn diese Lebenszyklus-Events aufgerufen werden. NavigationView führt mehrere Initialisierungen für NavigationView#onCreate und NavigationView#onStart sowie Bereinigungen für NavigationView#onStop und NavigationView#onDestroy aus. Dies geschieht auch, wenn andere Lebenszyklus-Events verarbeitet werden.

Die Lebenszyklusmethoden von NavigationView haben dieselbe Bedeutung wie für Android-Aktivitäten oder -Fragmente. Beispielsweise entspricht onCreate() von NavigationView ungefähr und sollte von Lebenszyklus-Callbacks der Android-Aktivität oder des Android-Fragments aufgerufen werden. Da die NavigationView-Lebenszyklus-Callbacks auf den Android-Lebenszyklus-Callbacks basieren und in derselben Reihenfolge aufgerufen werden, ist eine strenge Reihenfolge dieser NavigationView-Methoden erforderlich. Andernfalls kann es zu Speicher lecks, UI Fehlern, nicht aktualisierten Standorten und anderen Problemen kommen.

Weitere Informationen zum Android-Aktivitätslebenszyklus finden Sie im Abschnitt Konzepte zum Aktivitätslebenszyklus in der Android-Entwicklerdokumentation.

In der folgenden Tabelle ist aufgeführt, wann andere Lebenszyklusmethoden nach bestimmten Lebenszyklusmethoden aufgerufen werden sollten:

Lebenszyklusmethode Aufgerufen an folgender Stelle im Aktivitätslebenszyklus Aufgerufen nach folgender Lebenszyklusmethode
onConfigurationChanged() Wird aufgerufen, wenn sich die Konfiguration ändert und die UI im Vordergrund ist. Immer nach onStart()
onTrimMemory() Wird aufgerufen, wenn sich eine Aktivität im Hintergrund befindet. Immer nach onPause()
onSaveInstance() Wird aufgerufen, bevor eine Aktivität zerstört wird. Immer nach onStop()

Rufen Sie diese Lebenszyklusmethoden nicht mehrmals auf, ohne zuerst die entsprechende Schließmethode aufzurufen. Außerdem ist zu beachten, dass die App die spezifischen Methoden selbst in der richtigen Reihenfolge aufrufen muss, um das Navigation SDK korrekt zu initialisieren, wenn einige dieser Android-Lebenszyklus-Callbacks von der App selbst verwaltet werden und NavigationView dem Fragment nach der Erstellung oder dem Start hinzugefügt wird.

Weitere Informationen zur Verwendung dieser Methoden finden Sie in der Demo-App für das Navigation SDK.

Bei Verwendung von NavigationView Lebenszyklus-Events nur von der Aktivität oder dem Fragment aufrufen

Um die strenge Reihenfolge der Lebenszyklusmethoden beizubehalten, rufen Sie diese Events entweder von den Lebenszyklus-Callbacks der Aktivität oder des Fragments auf, die diese Events in der richtigen Reihenfolge empfangen. So müssen Apps nicht zwischen Fragmenten und Aktivitäten koordinieren und es werden keine doppelten Aufrufe verursacht.