Esta página explica as práticas recomendadas para interagir com o mapa de navegação no seu app.
Use SupportNavigationFragment
em vez de NavigationView
sempre que possível
SupportNavigationFragment
é um wrapper para facilitar o processamento dos callbacks do ciclo de vida NavigationView
, para que você não precise gerenciar esses callbacks. Esse método é menos propenso a erros e a maneira preferida de usar a navegação no seu app. Ao usar SupportNavigationFragment
, não invoque eventos de ciclo de vida NavigationView
.
Se estiver usando NavigationView
, use a ordenação estrita ao invocar métodos de ciclo de vida.
O NavigationView
hospeda o mapa de navegação e segue de perto os eventos
do ciclo de vida como atividades e fragmentos do Android, tomando ações específicas quando esses
eventos do ciclo de vida são invocados. O NavigationView
executa várias inicializações
em NavigationView#onCreate
e NavigationView#onStart
, além de limpezas em
NavigationView#onStop
e NavigationView#onDestroy
, e quando outros
eventos do ciclo de vida são processados.
Os métodos de ciclo de vida NavigationView
têm o mesmo significado que para atividades ou fragmentos do Android. Por exemplo, onCreate()
de NavigationView
é aproximadamente
traduzido e precisa ser invocado por callbacks de ciclo de vida da atividade ou do fragmento
do Android. Como os callbacks do ciclo de vida NavigationView
são baseados
e invocados na mesma ordem dos callbacks do ciclo de vida do Android, é necessário
ordenar esses métodos NavigationView. Caso contrário, você poderá ter vazamentos de memória, erros de interface, problemas com a atualização da localização e outros problemas.
Para mais informações sobre o ciclo de vida da atividade do Android, consulte a seção Conceitos do ciclo de vida da atividade na documentação para desenvolvedores Android.
A tabela a seguir mostra quando outros métodos do ciclo de vida devem ser invocados, depois de métodos especificados:
Método de ciclo de vida | Invocado em qual parte do ciclo de vida da atividade | Invocado após qual método de ciclo de vida |
---|---|---|
onConfigurationChanged()
|
Invocado quando a interface está em primeiro plano e a configuração muda. | Sempre depois de onStart()
|
onTrimMemory()
|
Invocado quando uma atividade está em segundo plano. | Sempre depois de onPause()
|
onSaveInstance()
|
Invocado antes de uma atividade ser destruída. | Sempre depois de onStop()
|
Não chame esses métodos de ciclo de vida várias vezes sem chamar o método de fechamento correspondente primeiro. Além disso, se alguns desses callbacks do ciclo de vida do Android forem gerenciados pelo próprio app e o NavigationView
for adicionado ao fragmento após a criação ou o início, o app precisará chamar os métodos específicos na ordem correta para inicializar o SDK Navigation corretamente.
Para mais orientações sobre o uso desses métodos, consulte o app de demonstração do SDK do Navigation.
Se estiver usando NavigationView
, invoque eventos de ciclo de vida da atividade ou do fragmento, não de ambos.
Para manter a ordem estrita dos métodos de ciclo de vida, invoque esses eventos nos callbacks de ciclo de vida da atividade ou do fragmento, que recebem esses eventos em ordem. Essa abordagem garante que os apps não precisem coordenar entre fragmentos e atividades e causar chamadas duplicadas.