Na tej stronie znajdziesz sprawdzone metody interakcji z mapą nawigacji w aplikacji.
W miarę możliwości używaj SupportNavigationFragment
zamiast NavigationView
.
SupportNavigationFragment
to element opakowujący, który ułatwia obsługę wywołań zwrotnych cyklu życia NavigationView
, dzięki czemu nie musisz zarządzać tymi wywołaniami zwrotnymi. Ta metoda jest mniej podatna na błędy i jest preferowanym sposobem korzystania z funkcji Nawigacja w aplikacji. Używając SupportNavigationFragment
, nie wywołuj zdarzeń cyklu życia NavigationView
.
Jeśli używasz NavigationView
, stosuj ścisłą kolejność wywoływania metod cyklu życia.
NavigationView
zawiera mapę nawigacyjną i ściśle śledzi zdarzenia cyklu życia jako aktywności i fragmenty Androida, wykonując określone czynności po wywołaniu tych zdarzeń cyklu życia. NavigationView
wykonuje wiele inicjalizacji na NavigationView#onCreate
i NavigationView#onStart
oraz czyszczenia na 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 aktywności lub fragmentów na Androidzie. Na przykład onCreate()
z NavigationView
odpowiada w przybliżeniu wywołaniu przez metody obsługi cyklu życia z aplikacji lub fragmentu na Androidzie. Ponieważ wywołania funkcji obsługi cyklu życia NavigationView
są wywoływane w tym samym porządku co wywołania funkcji obsługi cyklu życia Androida, wymagane jest ścisłe uporządkowanie tych metod NavigationView. W przeciwnym razie mogą wystąpić problemy z pamięcią, błędy interfejsu użytkownika, nieaktualizowanie lokalizacji i inne problemy.
Więcej informacji o cyklu życia aktywności w Androidzie znajdziesz w sekcji Pojęcia związane z cyklem życia aktywności w dokumentacji dla deweloperów Androida.
Poniższa tabela pokazuje, kiedy po wywołaniu określonych metod cyklu życia należy wywołać inne metody cyklu życia:
Metoda cyklu życia | W jakim miejscu w cyklu życia aktywności jest wywoływany | Wywoływany po której metodzie cyklu życia |
---|---|---|
onConfigurationChanged()
|
Wywoływany, gdy interfejs jest na pierwszym planie, a konfiguracja się zmienia. | Zawsze po onStart()
|
onTrimMemory()
|
Wywoływany, gdy aktywność jest wykonywana w tle. | Zawsze po onPause()
|
onSaveInstance()
|
Wywoływany przed zniszczeniem aktywności. | Zawsze po onStop()
|
Nie wywołuj tych metod cyklu życia wielokrotnie bez wywołania najpierw odpowiedniej metody zamykania. Pamiętaj też, że jeśli niektóre z tych wywołań zwrotnych cyklu życia Androida są zarządzane przez samą aplikację, a element NavigationView
jest dodawany do fragmentu po utworzeniu lub uruchomieniu, aplikacja powinna wywołać określone metody w odpowiedniej kolejności, aby prawidłowo zainicjować pakiet SDK nawigacji.
Więcej wskazówek dotyczących korzystania z tych metod znajdziesz w aplikacji demonstracyjnej Navigation SDK.
Jeśli używasz funkcji NavigationView
, wywołuj zdarzenia cyklu życia z poziomu działania lub fragmentu, ale nie z obu tych elementów.
Aby zachować ścisłą kolejność metod cyklu życia, wywołuj te zdarzenia z połączeń z cyklem życia aktywności lub fragmentu, które otrzymują te zdarzenia w kolejności. Dzięki temu aplikacje nie muszą koordynować działań między fragmentami i czynnościami, co mogłoby powodować powielanie wywołań.