Best practice per l'interazione con la mappa di navigazione

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

Utilizza SupportNavigationFragment anziché NavigationView, se possibile

SupportNavigationFragment è un wrapper per la gestione semplificata dei callback del ciclo di vita di NavigationView, in modo che tu non debba 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, utilizza un ordine rigoroso quando richiami i metodi del ciclo di vita

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

I metodi del ciclo di vita NavigationView hanno lo stesso significato delle attività o dei frammenti 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 NavigationView si basano sugli stessi callback del ciclo di vita di Android e vengono richiamati nello stesso ordine, è necessario un ordine rigoroso di questi metodi 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 dell'attività Android, consulta la sezione Concetti relativi al ciclo di vita dell'attività nella documentazione per gli sviluppatori Android.

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

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 la UI è in primo piano e la configurazione cambia. Sempre dopo il giorno onStart()
onTrimMemory() Richiamato quando un'attività è in background. Sempre dopo il giorno onPause()
onSaveInstance() Richiamato prima che un'attività venga eliminata. Sempre dopo onStop()

Non chiamare più volte questi metodi del ciclo di vita senza chiamare prima il metodo di chiusura corrispondente. Inoltre, tieni presente che se alcuni di questi callback del ciclo di vita di Android vengono gestiti dall'app stessa e l'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 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 frammento, che li ricevono in ordine. Questo approccio garantisce che le app non debbano coordinarsi tra fragment e attività e causare chiamate duplicate.