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.

Verwenden Sie nach Möglichkeit immer SupportNavigationFragment anstelle von NavigationView.

SupportNavigationFragment ist ein Wrapper, der die Verarbeitung der NavigationView-Lebenszyklus-Callbacks vereinfacht, sodass Sie diese nicht selbst verwalten müssen. Diese Methode ist weniger fehleranfällig und die bevorzugte Methode für die Verwendung von Navigation in Ihrer App. Wenn Sie SupportNavigationFragment verwenden, dürfen Sie keine NavigationView-Lifecycle-Events aufrufen.

Bei Verwendung von NavigationView müssen Lebenszyklusmethoden in strikter Reihenfolge aufgerufen werden.

NavigationView enthält die Navigationskarte und folgt eng den Lebenszyklusereignissen als Android-Aktivitäten und ‑Fragmente. Bei Aufruf dieser Lebenszyklusereignisse werden bestimmte Aktionen ausgeführt. NavigationView führt mehrere Initialisierungen für NavigationView#onCreate und NavigationView#onStart sowie Bereinigungen für NavigationView#onStop und NavigationView#onDestroy aus. Das gilt auch, wenn andere Lebenszyklusereignisse verarbeitet werden.

Die NavigationView-Lebenszyklusmethoden haben dieselbe Bedeutung wie für Android-Aktivitäten oder -Fragmente. onCreate() von NavigationView entspricht beispielsweise in etwa Lebenszyklus-Callbacks aus der Android-Aktivität oder dem Android-Fragment und sollte von diesen 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 können Speicherlecks, UI-Fehler, Probleme beim Aktualisieren des Standorts und andere Probleme auftreten.

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

In der folgenden Tabelle sehen Sie, wann andere Lebenszyklusmethoden nach bestimmten Lebenszyklusmethoden aufgerufen werden sollten:

Lebenszyklusmethode Wird aufgerufen, wenn sich die Aktivität in dieser Phase des Lebenszyklus befindet Nach welcher Methode des Lebenszyklus wird sie aufgerufen?
onConfigurationChanged() Wird aufgerufen, wenn sich die Benutzeroberfläche im Vordergrund befindet und sich die Konfiguration ändert. 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. Wenn einige dieser Android-Lifecycle-Callbacks von der App selbst verwaltet werden und das NavigationView dem Fragment nach der Erstellung oder dem Start hinzugefügt wird, muss die App die spezifischen Methoden selbst in der richtigen Reihenfolge aufrufen, um das Navigation SDK richtig zu initialisieren.

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

Wenn Sie NavigationView verwenden, rufen Sie Lifecycle-Ereignisse über die Aktivität oder das Fragment auf, nicht über beides.

Damit die Methoden des Lebenszyklus in der richtigen Reihenfolge aufgerufen werden, sollten Sie diese Ereignisse entweder über die Lebenszyklus-Callbacks der Aktivität oder des Fragments aufrufen, da diese Ereignisse in der richtigen Reihenfolge empfangen werden. So wird verhindert, dass Apps zwischen Fragmenten und Aktivitäten koordinieren und doppelte Aufrufe verursachen müssen.