Ciclo de vida de uma Activity Android

Talvez a classe mais importante do Android seja a Activity. De forma simplista, podemos dizer que ela é responsável por renderizar as views na tela ou até mesmo que ela é as telas do app. De acordo com a documentação do Google ela é simplesmente o que o nome diz, uma "atividade" que é basicamente a unica coisa que o usuário pode iteragir com seu smartphone.

Por isso é importante entender como é o ciclo de vida delas. Sempre que a tela é iniciada, o Android chama o método onCreate, e nele definimos qual xml iremos renderizar na tela. Neste ponto é comum setar as variáveis de componentes da tela e até mesmo configurar a forma que eles deverão estar. Fazer chamadas ao banco neste ponto, também é uma boa ideia. Como parametro, recebe um Bundle com o estado de sua última excecução.

Logo depois é chamado a função onStart, esta função também é chamada quando o usuário aperta o botão de Home ou faz com que a Activity "pare"(caso ela esteja em background, por que ela invocou outra Activity, ela está pausada e não parada) e logo depois volta a execultar o app. É a última método a ser chamado antes que a aplicação seja renderizada na tela.

Apesar de pouco conhecida, também existe a função onPostCreate que é chamada após onStart.

Agora o Android irá chamar a função onResume, que também é chamada sempre que o usuário "pausa" a activity, seja por que a própria aplicação invocou uma nova Activity ou por que uma Actitivy prioritária "ganhou o direito de entrar na tela" e retorna a ela. Neste ponto, já temos a tela renderizada e é possível interagir diretamtente com o usuário.

Por fim, é chamada a função onPostResume.

Este é o clico de criação/"ativação de uma Acitivity pausada/parada",  abaixo temos o ciclo de destruição/pausa:

Sempre que uma Activity é pausada(o Android ou você chamou outra atividade para o primeiro plano), o sistema chama o método onPause, neste momento perdemos a possibilidade de editar a tela, além de salvar dados e personalizações efetuadas pelo usuário.

Quando outra Activity vai para o primeiro plano ou sua atividade irá ser destruida, o Android chama a função onStop.

Antes da sua aplicação ser eliminada, o sistema chama o método onDestroy. Este método pode ser chamado quando o Android precisa de recursos ou o usuário fechou o seu app. Caso seja importante saber se foi o Android ou uma Acitivity que invocou o método, você deve utilizar o método *isFinishing * que retornará falso no caso do primeiro cenário. Um detalhe a se notar é que ela não é chamda na versão 1.5 do sistema operacional do google. Outro fato importante é que o google deixa bem claro que este método *não deve ser utilizado para salvar dados, *pois podem haver situações onde ele não é chamado no momento de liberar espaço para o sistema.

Importante lembrar que você nunca deve chamar estes métodos por conta própria, caso precise finalizar ou recriar sua atividade deve utilizar os métodos  finish *ou  *recreate respectivamente.

A própria documentação do Android tem uma imagem bem ilustrativa deste ciclo, caso queira uma referência rápida:

Android activity lifecycle