Questa pagina illustra le best practice per interagire con la mappa di navigazione nella tua app.
Se possibile, utilizza SupportNavigationFragment
anziché NavigationView
SupportNavigationFragment
è un wrapper per gestire facilmente i callback del ciclo di vita di NavigationView
, quindi non devi gestire direttamente questi callback. Questo metodo è meno soggetto a errori ed è il modo preferito per utilizzare Navigation nella tua app. Quando utilizzi SupportNavigationFragment
, assicurati di non invocare gli eventi di ciclo di vita di SupportNavigationFragment
.NavigationView
Se utilizzi NavigationView
, utilizza un ordine rigoroso quando richiami i metodi di ciclo di vita
NavigationView
ospita la mappa di navigazione e segue da vicino gli eventi del ciclo di vita come attività e frammenti Android, adottando azioni specifiche quando vengono invocati. NavigationView
esegue più inizializzazioni su NavigationView#onCreate
e NavigationView#onStart
e operazioni di pulizia su NavigationView#onStop
e NavigationView#onDestroy
, nonché quando vengono elaborati altri eventi di ciclo di vita.
I metodi di ciclo di vita di NavigationView
hanno lo stesso significato di quelli per le attività o i frammenti Android. Ad esempio, onCreate()
di NavigationView
corrisponde approssimativamente a e deve essere invocato dai callback del ciclo di vita dall'attività o dal frammento Android. Poiché i callback del ciclo di vita di NavigationView
si basano su e vengono richiamati nello stesso ordine dei callback del ciclo di vita di Android, è necessario un ordinamento rigoroso di questi metodi NavigationView. In caso contrario, potresti riscontrare perdite di memoria, errori dell'interfaccia utente, mancata aggiornamento della posizione e altri problemi.
Per ulteriori informazioni sul ciclo di vita delle attività Android, consulta la sezione Concetti del ciclo di vita delle attività della documentazione per gli sviluppatori Android.
La tabella seguente mostra quando devono essere invocati altri metodi del ciclo di vita dopo metodi del ciclo di vita specificati:
Metodo del ciclo di vita | Chiamato in quale punto del ciclo di vita dell'attività | Chiamato dopo quale metodo del ciclo di vita |
---|---|---|
onConfigurationChanged()
|
Viene invocato quando l'interfaccia utente è in primo piano e la configurazione cambia. | Sempre dopo le ore onStart()
|
onTrimMemory()
|
Viene invocato quando un'attività è in background. | Sempre dopo le ore onPause()
|
onSaveInstance()
|
Viene invocato prima dell'eliminazione di un'attività. | Sempre dopo onStop()
|
Non chiamare questi metodi di ciclo di vita più volte senza prima chiamare il metodo di chiusura corrispondente. Inoltre, tieni presente che se alcuni di questi callback del ciclo di vita di Android sono gestiti dall'app stessa e il NavigationView
viene aggiunto al frammento dopo la creazione o l'avvio, l'app deve chiamare i metodi specifici nell'ordine corretto per inizializzare correttamente l'SDK Navigation.
Per ulteriori indicazioni sull'utilizzo di questi metodi, consulta l'app demo dell'SDK Navigation.
Se utilizzi NavigationView
, richiama gli eventi di ciclo di vita dall'attività o dal frammento, non da entrambi
Per mantenere l'ordine rigoroso dei metodi del ciclo di vita, invoca questi eventi dai callback del ciclo di vita dell'attività o del frammento, che li ricevono in ordine. Questo approccio garantisce che le app non debbano coordinarsi tra frammenti e attività e causare chiamate duplicate.