Best practice per l'interazione con la mappa di navigazione

Questa pagina spiega le best practice per interagire con la mappa di navigazione nella tua app.

Se possibile, utilizza SupportNavigationFragment anziché NavigationView

SupportNavigationFragment è un wrapper per la gestione semplificata dei callback del ciclo di vita di NavigationView, quindi non devi gestirli direttamente. Questo metodo è meno soggetto a errori ed è il modo preferito per utilizzare la navigazione nella tua app. Quando utilizzi SupportNavigationFragment, assicurati di non richiamare gli eventi del ciclo di vita di NavigationView.

Se utilizzi NavigationView, rispetta l'ordine rigoroso quando richiami i metodi del ciclo di vita

NavigationView ospita la mappa di navigazione e segue attentamente gli eventi del ciclo di vita come attività e fragment Android, intraprendendo azioni specifiche quando vengono richiamati questi eventi del ciclo di vita. NavigationView esegue più inizializzazioni su NavigationView#onCreate e NavigationView#onStart, nonché pulizie su NavigationView#onStop e NavigationView#onDestroy, oltre a quando vengono elaborati altri eventi del ciclo di vita.

I metodi del ciclo di vita di NavigationView hanno lo stesso significato delle attività o dei fragment Android. Ad esempio, onCreate() di NavigationView si traduce approssimativamente in e deve essere richiamato dai callback del ciclo di vita dell'attività o del fragment Android. Poiché i callback del ciclo di vita di NavigationView si basano sui callback del ciclo di vita di Android e vengono richiamati nello stesso ordine, è necessario rispettare un ordine rigoroso di questi metodi di NavigationView. In caso contrario, potresti riscontrare perdite di memoria, errori dell'interfaccia utente, mancato aggiornamento della posizione e altri problemi.

Per ulteriori informazioni sul ciclo di vita delle attività Android, consulta la sezione Concetti relativi al ciclo di vita delle attività nella documentazione per gli sviluppatori Android.

La tabella seguente mostra quando devono essere richiamati altri metodi del ciclo di vita, dopo i metodi del ciclo di vita specificati:

Metodo del ciclo di vita Richiamato in quale punto del ciclo di vita dell'attività Richiamato dopo quale metodo del ciclo di vita
onConfigurationChanged() Richiamato quando l'interfaccia utente è in primo piano e la configurazione cambia. Sempre dopo onStart()
onTrimMemory() Richiamato quando un'attività è in background. Sempre dopo onPause()
onSaveInstance() Richiamato prima che un'attività venga eliminata. Sempre dopo onStop()

Non chiamare questi metodi del 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 NavigationView viene aggiunto al fragment dopo la creazione o l'avvio, l'app deve chiamare i metodi specifici in 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 del ciclo di vita dall'attività o dal fragment, non da entrambi

Per mantenere l'ordine rigoroso dei metodi del ciclo di vita, richiama questi eventi dai callback del ciclo di vita dell'attività o del fragment, che li ricevono in ordine. Questo approccio garantisce che le app non debbano coordinarsi tra fragment e attività e causare chiamate duplicate.