Na tej stronie znajdziesz sprawdzone metody interakcji z mapą Navigation w aplikacji.
Jeśli to możliwe, używaj SupportNavigationFragment zamiast NavigationView
SupportNavigationFragment to otoka ułatwiająca obsługę wywołań zwrotnych cyklu życia NavigationView, dzięki czemu nie musisz samodzielnie zarządzać tymi wywołaniami zwrotnymi. Ta metoda jest mniej podatna na błędy i jest preferowanym sposobem korzystania z Navigation w aplikacji. Jeśli używasz SupportNavigationFragment, nie wywołuj zdarzeń cyklu życia NavigationView.
Jeśli używasz NavigationView, wywołuj metody cyklu życia w ścisłej kolejności
NavigationView hostuje mapę Navigation i ściśle przestrzega zdarzeń cyklu życia, takich jak działania i fragmenty Androida, podejmując określone działania po wywołaniu tych zdarzeń cyklu życia. NavigationView wykonuje wiele inicjacji
w NavigationView#onCreate i NavigationView#onStart, a także czyszczenie w
NavigationView#onStop i NavigationView#onDestroy, a także podczas przetwarzania innych
zdarzeń cyklu życia.
Metody cyklu życia NavigationView mają takie samo znaczenie jak w przypadku działań i fragmentów Androida. Na przykład onCreate() w NavigationView w przybliżeniu odpowiada wywołaniu zwrotnemu cyklu życia z działania 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 działania Androida znajdziesz w sekcji Activity-lifecycle concepts 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 działania | 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 działanie jest w tle. | Zawsze po onPause()
|
onSaveInstance()
|
Wywoływana przed zniszczeniem działania. | 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 samodzielnie wywoływać określone metody w odpowiedniej kolejności, aby prawidłowo zainicjować pakiet Navigation SDK.
Dodatkowe wskazówki dotyczące korzystania z tych metod znajdziesz w aplikacji demonstracyjnej Navigation SDK.
Jeśli używasz NavigationView, wywołuj zdarzenia cyklu życia z działania lub fragmentu, a nie z obu tych elementów
Aby zachować ścisłą kolejność metod cyklu życia, wywołuj te zdarzenia z wywołań zwrotnych cyklu życia działania lub fragmentu, które otrzymują te zdarzenia w odpowiedniej kolejności. Dzięki temu aplikacje nie muszą koordynować działań między fragmentami i działaniami oraz powodować duplikatów wywołań.