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 a conveniência de processar o
Callbacks do ciclo de vida de NavigationView
, portanto, não é necessário gerenciá-los.
os próprios callbacks. Esse método é menos propenso a erros e é a maneira preferida de
usar a navegação no app. Ao usar SupportNavigationFragment
, não
invoque eventos de ciclo de vida NavigationView
.
Se você estiver usando NavigationView
, use uma ordem rígida ao invocar métodos de ciclo de vida
NavigationView
hospeda o mapa de navegação e segue de perto o ciclo de vida
eventos como atividades e fragmentos do Android, realizando ações específicas quando esses
eventos de 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
, bem como quando outros
eventos de ciclo de vida são processados.
Os métodos de ciclo de vida NavigationView
têm o mesmo significado que no Android.
atividades ou fragmentos. 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 que os callbacks do ciclo de vida do Android, é necessário
ordenar esses métodos NavigationView. Caso contrário, você pode
memória de experiência
vazamentos, interface
erros, localização não atualizada e outros problemas.
Para mais informações sobre o ciclo de vida da atividade do Android, consulte a Conceitos do ciclo de vida da atividade na documentação do desenvolvedor Android.
A tabela a seguir mostra quando outros métodos do ciclo de vida devem ser invocados, após métodos de ciclo de vida especificados:
Método do ciclo de vida | Invocado em que parte do ciclo de vida da atividade | Invocado após qual método do 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 após onStop()
|
Não chame esses métodos do ciclo de vida várias vezes sem chamar o método
método de fechamento correspondente primeiro. Além disso, tenha em mente que, se alguns
esses callbacks do ciclo de vida do Android são gerenciados pelo próprio app, e a
NavigationView
é adicionado ao fragmento após a criação ou início, o app
precisam chamar os métodos específicos na ordem correta para
inicializar corretamente o SDK do Navigation.
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 do ciclo de vida, invoque esses eventos de os callbacks do ciclo de vida da atividade ou do fragmento, que recebem esses eventos em ordem. Com essa abordagem, os apps não precisam coordenar fragmentos e atividades e causem chamadas duplicadas.