Auf dieser Seite werden Best Practices für die Interaktion mit der Navigationskarte in Ihrer App erläutert.
Verwenden Sie nach Möglichkeit SupportNavigationFragment
anstelle von NavigationView
.
SupportNavigationFragment
ist ein Wrapper, der die Lebenszyklus-Callbacks von NavigationView
verwaltet, sodass Sie diese Callbacks nicht selbst verwalten müssen. Diese Methode ist weniger fehleranfällig und die bevorzugte Methode, Navigation in Ihrer App zu verwenden. Wenn Sie SupportNavigationFragment
verwenden, dürfen Sie keine NavigationView
-Lebenszyklusereignisse aufrufen.
Wenn Sie NavigationView
verwenden, achten Sie beim Aufrufen von Lebenszyklusmethoden auf eine strikte Reihenfolge.
NavigationView
beherbergt die Navigationskarte und verfolgt die Lebenszyklusereignisse als Android-Aktivitäten und ‑Fragmente genau. Wenn diese Lebenszyklusereignisse aufgerufen werden, 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, außerdem bei der Verarbeitung anderer Lebenszyklusereignisse.
NavigationView
Lebenszyklusmethoden haben dieselbe Bedeutung wie bei Android-Aktivitäten oder ‑Fragmenten. Beispielsweise entspricht onCreate()
von NavigationView
ungefähr und sollte durch Lebenszyklus-Callbacks von der Android-Aktivität oder dem Android-Fragment aufgerufen werden. Da die Lebenszyklus-Callbacks von NavigationView
auf den Android-Lebenszyklus-Callbacks basieren und in derselben Reihenfolge aufgerufen werden, ist eine strenge Reihenfolge dieser NavigationView-Methoden erforderlich. Andernfalls kann es zu Speicherlecks, UI-Fehlern, nicht aktualisierten Standorten und anderen Problemen kommen.
Weitere Informationen zum Android-Aktivitätslebenszyklus finden Sie im Abschnitt Konzepte des Aktivitätslebenszyklus in der Android-Entwicklerdokumentation.
In der folgenden Tabelle sehen Sie, wann andere Lebenszyklusmethoden nach bestimmten Lebenszyklusmethoden aufgerufen werden sollten:
Lebenszyklusmethode | Wo im Aktivitätslebenszyklus aufgerufen | Nach welcher Lebenszyklusmethode aufgerufen |
---|---|---|
onConfigurationChanged()
|
Wird aufgerufen, wenn sich die Benutzeroberfläche im Vordergrund befindet und die Konfiguration geändert wird. | Immer nach dem onStart()
|
onTrimMemory()
|
Wird aufgerufen, wenn eine Aktivität im Hintergrund ausgeführt wird. | Immer nach dem 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-Lebenszyklus-Callbacks von der App selbst verwaltet werden und die NavigationView
dem Fragment nach der Erstellung oder dem Start hinzugefügt wird, sollte die App die entsprechenden Methoden selbst in der richtigen Reihenfolge aufrufen, um das Navigations-SDK richtig zu initialisieren.
Weitere Informationen zur Verwendung dieser Methoden finden Sie in der Navigation SDK-Demo-App.
Wenn Sie NavigationView
verwenden, rufen Sie Lebenszyklus-Ereignisse aus der Aktivität oder dem Fragment auf, nicht aus beiden.
Um die strikte Reihenfolge der Lebenszyklusmethoden beizubehalten, rufen Sie diese Ereignisse entweder über die Lebenszyklus-Callbacks der Aktivität oder des Fragments auf, die diese Ereignisse in der richtigen Reihenfolge erhalten. So müssen Apps nicht zwischen Fragmenten und Aktivitäten koordiniert werden, was zu doppelten Aufrufen führen kann.