Início > Android > Lifecycle of Activity

Lifecycle of Activity

Uma Activity é uma classe que herda de android.app.Activity ou suas subclasses. Activity é responsável por tratar os eventos da tela como, por exemplo, tratar o clique do botão na tela, escrever um texto dinamicamente na tela etc. As activities sobrescrevem o método onCreate(Bundle) que é responsável por realizar a inicialização da tela através do método setContentView(view), essa view passada como parâmetro é a tela que será inicializada. Podemos interpretar activity como tela. Quando você está jogando, a activity que esta no topo da pilha da “activity stack” é a activity do jogo, as demais activities que estão abaixo da pilha, podem estar em modo de pausa, totalmente parado ou executando em segundo plano. Mas se você está jogando e recebe uma ligação na hora do penalty. O que acontecerá?

O Android colocará a aplicação de ligação no topo da pilha e a aplicação do jogo abaixo, temporariamente parada. Existem alguns métodos que controlam o ciclo de vida de uma aplicação. São eles, onCreate(), onStart(), onResume(), onPause(),onStop() e o onDestroy(). Também existem subníveis de um ciclo de vida, são eles, entire lifetime, visibile lifetime e o foreground lifetime. Mais informações sobre o assunto na referência no portal Android. Abaixo existe uma imagem onde você pode observar o comportamento de uma activity.

Acompanhando o raciocínio da imagem e temos o seguinte fluxo.

onCreate() – Chamado quando uma activity é criada pela primeira vez. É nela que você pode fazer a configuração estática, por exemplo, vincular dados com um Bundle, criar view etc. Após sua execução sucedida, sempre será chamado o onStart().

onRestart() – Chamado sempre quando uma activity é interrompida antes de ser iniciada novamente. Após sua execução sucedida, sempre será chamado o onStart().

onStart() – Chamado quando uma activity está se tornando visível para o usuário. Vai para o método onResume().

onResume() – Chamado quando a activity começa a interagir com o usuário. Sua activity está no topo da pilha de activities, com a entrada do usuário apontando para ele.

onPause() – Chamado quando o sistema está prestes a retomar uma activity anterior. É normalmente utilizado para confirmar alterações não salvas, por exemplo, persistência de dados, animações etc. Uma observação: a implementação deste método deve ser rápida, porque a próxima atividade não será retomada até que esse método retorne, ou finalize. Vai para onResume() se a activity vai para frente “back to the front” ou onStop se for tornada invisível para o usuário.

onStop() – Chamado quando a activity já não é visível para o usuário, porque outra activity foi retomada e está cobrindo esta. Isto pode acontecer se, uma nova acitivity esta sendo criada, se a activity já criada está trazendo outra activity à frente desta ou se a activity principal está sendo destruída. Vai para onRestart() se a acitivy está voltando para interagir com o usuário, vai para onCreate() caso seja criado uma nova activity ou vai para onDestroy() se essa activity está sendo fechada.

onDestroy() – Destrói a acitivty para liberar espaço em memória.

Durante a execução dos métodos onStop(), onPause() e onDestroy() o processo deu uma activity pode ser destruido pelo sistema operacional, caso as condições de memórias estejam em processo critico.

Processo do ciclo de vida

Existem três subníves do ciclo de vida principal. Que por sua vez fica se repetindo durante a execução da aplicação. Eles são, entire lifetime, visible lifetime e foreground lifetime. Cada ciclo desses se inicia durante a chamada de um dos métodos que controlam o ciclo de vida da atividade e termina quando outro método é chamado.

* Entire lifetime – Ciclo de vida complete entre o início e destruição da activity.

Define o tempo de vida complete de um activity. Ele acontece entre as chamadas do método onCreate() e onDestroy() os quais são chamados apenas uma única vez, quando a activity é criada e destruida.

* Visible lifetime – Activity está iniciada, mas pode estar no topo da pilha interagindo com o usuário ou temporariamente parade em Segundo plano.

Este ciclo ocorre entre os métodos onStart() e onStop(). Apartir da execução do método onStart() o fluxo do ciclo ciclo visible lifetime é executado entre as chamadas dos métodos onResume(),onPausa(), onStop() e onRestart(). Durante esse período a activity pode está visível para o usuário ou pode está sendo executada em segundo plano.

* Foreground lifetime – Activity está no topo da pilha e interagindo com o usuário

Esse ciclo de vida ocorre entre os métodos onResume() e onPausa. Durante esse tempo, a activity está no topo da pilha e interagindo com usuário. Uma activity pode frequentemente oscilar nesses estados de onResume() e onPausa(). Um exemplo disto é um jogo que entra em pausa e pode ser continuado depois.

* Empty process – é uma hospedagem sem activity ou outros componentes de aplicação (como service ou classes BroadcastReceiver). Estes são mortos rapidamente pelo sistema quando necessita de memória. Por esta razão, qualquer operação em background que você faz fora de uma activity deve ser executada no âmbito de uma actividade BroadcastReceiver ou Service para garantir que o sistema operacional saiba que ele precisa manter seu processo de volta.

Anúncios
  1. Anônimo
    dezembro 18, 2012 às 5:32 pm

    Obrigado pelo esclarecimento amigo. Estou pesquisando um pouco sobre desenvolvimento em android, pensando em entrar na area.. Apesar de ainda não ter bons conhecimentos em Java.. e pelo que tenho visto, seria de grande valia se já conhecesse mais a fundo a linguagem, mas nada impede de passar a conhecer..rs.. Curti. Parabéns pelo artigo.

  2. Anônimo
    dezembro 18, 2012 às 7:33 pm

    Pois é.. rs
    Estudei a linguagem esse semestre na facu.. mas ainda to muito fraco.
    Vou aproveitar as ferias pra garimpar melhor, e quem sabe da certo.. =)

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: