Ciclo de Vida de uma Activity
Cada activity possui um ciclo de vida ou seja, possui processos internos, elas são criadas, pausadas, reiniciadas e destruidas.
Conhecer cada ciclo de uma activity é muito importante caso voce queira programar alguma ação no seu projeto em algum ponto da activity como por exemplo colocar um evento de limpeza no momento em que a nossa activity é pausada.
Para cada estado da nossa activity existe um metodo que podemos sobreescrever, sendo eles:
- onCreate
- É a primeira função a ser executada quando uma activity é lançada, utilizada para configurar a interface do usuario e iniciar outros componentes de nossa activity
- onStart
- É chamada antes da activity se tornar visivel para o usuario, é chamada apos o onCreate ou apos uma activity que estava em background voltar a seu primeiro plano.
- onResume
- Ultimo metodo chamado antes da exibição da activity para o usuario, sempre é acionada quando a acitivty voltar para seu primeiro plano.
- onPause
- É a primeira função a ser executada quando uma activity vai para o background, podemos utilizar ela para realizar processos de salvar dados, liberar recursos para o sistema.
- onStop
- O metodo onStop é chamado quando a activity não esta mais visivel para o usuario, isso pode acontecer porque ela esta sendo destruida por outra activity.
- onRestart
- Chamada imediatamente antes do onStart quando uma activity que estava em background voltar para o primeiro plano.
- onDestroy
- É chamada quando a activity vai ser destruida, é a ultima chamada do ciclo de vida de uma acitivty, apos essa chamada a activity não pode mais ser reiniciada, ela tera que ser iniciada novamente.
Para entendermos melhor, ao iniciar a activity (Tela A) é chamado o metodo onCreate, e logo apos é chamado o meotdo onStart e onResume, a partir deste ponto a nossa acitivty esta visivel para o usuario, quando uma nova tela (Tela B) é chamada o onPause da tela A é chamado e então é chamado o metodo onCreate, onPause e onResume da tela B, por fim é chamado o metodo onStop da tela A, nesse momento a tela A não esta mais visivel para o usuario, caso nos pressionarmos o botão back do android para voltar para a tela A, o metodo onPause da tela B é chamado e apos isso os metodos onRestart, onStart e onResume da tela A serão chamados, apos essas chamadas, os metodos onStop e onDestroy da tela B serão chamados.