Na tej stronie znajdziesz sprawdzone metody interakcji z mapą nawigacyjną w aplikacji.
W miarę możliwości używaj SupportNavigationFragment
zamiast NavigationView
.
SupportNavigationFragment
to otoczka ułatwiająca obsługę wywołań zwrotnych cyklu życia NavigationView
, więc nie musisz zarządzać tymi wywołaniami zwrotnymi samodzielnie. Ta metoda jest mniej podatna na błędy i jest preferowanym sposobem korzystania z Navigation w aplikacji. Podczas korzystania z SupportNavigationFragment
nie wywołuj zdarzeń cyklu życia NavigationView
.
Jeśli używasz NavigationView
, podczas wywoływania metod cyklu życia stosuj ścisłą kolejność.
NavigationView
hostuje mapę nawigacyjną i ściśle śledzi zdarzenia cyklu życia jako działania i fragmenty Androida, podejmując określone działania po wywołaniu tych zdarzeń cyklu życia. NavigationView
wykonuje wiele inicjalizacji na platformach NavigationView#onCreate
i NavigationView#onStart
oraz czyszczenie na platformach NavigationView#onStop
i NavigationView#onDestroy
, a także podczas przetwarzania innych zdarzeń cyklu życia.
NavigationView
metody cyklu życia mają takie samo znaczenie jak w przypadku aktywności lub fragmentów na Androidzie. Na przykład onCreate()
w przybliżeniu NavigationView
odpowiada wywołaniom zwrotnym cyklu życia z aktywności lub fragmentu Androida i powinno być przez nie wywoływane. Ponieważ wywołania zwrotne cyklu życia NavigationView
są oparte na wywołaniach zwrotnych cyklu życia Androida i wywoływane w tej samej kolejności, wymagane jest ścisłe uporządkowanie tych metod NavigationView. W przeciwnym razie mogą wystąpić wycieki pamięci, błędy interfejsu, brak aktualizacji lokalizacji i inne problemy.
Więcej informacji o cyklu życia aktywności na Androidzie znajdziesz w sekcji Pojęcia związane z cyklem życia aktywności w dokumentacji dla deweloperów Androida.
W tabeli poniżej pokazano, kiedy należy wywoływać inne metody cyklu życia po określonych metodach cyklu życia:
Metoda cyklu życia | Wywoływana w cyklu życia aktywności | Wywoływana po której metodzie cyklu życia |
---|---|---|
onConfigurationChanged()
|
Wywoływana, gdy interfejs jest na pierwszym planie i zmienia się konfiguracja. | Zawsze po onStart()
|
onTrimMemory()
|
Wywoływana, gdy aktywność jest w tle. | Zawsze po onPause()
|
onSaveInstance()
|
Wywoływana przed zniszczeniem aktywności. | Zawsze po onStop()
|
Nie wywołuj tych metod cyklu życia wielokrotnie bez wcześniejszego wywołania odpowiedniej metody zamykającej. Pamiętaj też, że jeśli niektóre z tych wywołań zwrotnych cyklu życia Androida są zarządzane przez samą aplikację, a NavigationView
jest dodawany do fragmentu po utworzeniu lub uruchomieniu, aplikacja powinna wywoływać odpowiednie metody w odpowiedniej kolejności, aby prawidłowo zainicjować pakiet SDK nawigacji.
Dodatkowe wskazówki dotyczące korzystania z tych metod znajdziesz w aplikacji demonstracyjnej pakietu Navigation SDK.
Jeśli używasz NavigationView
, wywołuj zdarzenia cyklu życia z poziomu działania lub fragmentu, a nie obu tych elementów.
Aby zachować ścisłą kolejność wywoływania metod cyklu życia, wywołuj te zdarzenia z wywołań zwrotnych cyklu życia aktywności lub fragmentu, które odbierają te zdarzenia w odpowiedniej kolejności. Dzięki temu aplikacje nie muszą koordynować działań między fragmentami i aktywnościami, co zapobiega duplikowaniu wywołań.