Estados de uma Activity

Quando vimos, na primeira aula desse curso, as diferenças entre a programação para dispositivos móveis e a programação desktop, observamos que uma das principais diferenças é a possibilidade da ocorrência de eventos assíncronos, no caso da programação mobile. Esses eventos ocorrem sem que tenhamos controle sobre eles, e uma boa aplicação desenvolvida para dispositivos móveis deve sempre se preocupar em tratá-los corretamente.

Pensando nesses eventos e no ciclo normal da aplicação, o Android disponibiliza diversos métodos que devem ser implementados nas Activities para que respondam corretamente a cada estado em que a Activity possa ser colocada enquanto durar o seu ciclo de vida. Para compreender esses métodos, é necessário antes entender cada um dos possíveis estados da Activity. São eles:

  • Ativa: Uma Activity nesse estado foi inicializada e está em primeiro plano, sendo a responsável por receber eventos e interagir com o usuário no momento.
  • Pausada: Quando uma janela toma a frente da Activity, mas não ocupa a tela inteira (uma notificação, por exemplo), a Activity que ficou para trás é colocada no estado de pausa. Nesse estado, ela ainda está visível, mas não está sendo executada.
  • Parada: No caso quando uma nova janela de tela inteira toma a frente da aplicação, a Activity é então colocada no estado de parada. Nesse estado, ela não está sendo executada, nem mostrada na tela. É importante lembrar que nesse estado ela ainda é válida e pode voltar a ser executada e exibida na tela quando a que tomou a sua frente for finalizada.
  • Morta: Esse estado indica que a Activity não foi inicializada (apesar de estar presente na aplicação) ou então que, por falta de memória, foi encerrada, ou ainda que foi encerrada graças ao usuário, que finalizou sua execução. Em todos esses casos, ela não mais existe na memória do dispositivo.

Veja que a mudança de estado pode ocorrer tanto de maneira controlada, como , por exemplo, uma Activity iniciando outra e sendo parada por esse motivo, quanto de uma maneira totalmente inesperada, como uma que estava sendo executada ser parada por uma ligação que está chegando e então morta pela falta de memória gerada ao atender essa chamada. Ambas as maneiras vão gerar na Activity o mesmo ciclo, passando pelos mesmos métodos e estados. Por isso, cuidado na hora de planejar os estados de sua Activity. Para facilitar o entendimento de cada um dos estados, vejamos a Figura 1.

Estados de Activities

Na Figura 1, vemos, à esquerda, a Activity 1 em execução, ou seja, Ativa. As Activities 2 e 3 estão no estado Mortas, pois ainda não foram iniciadas. Ao centro da Figura 1, vemos um exemplo onde a Activity 2 passou a ser Ativa, enquanto a de número 1 passou a Pausada, pois está na tela, mas sem o foco. À direita da Figura 1, a Activity 3 foi inicializada, passando ao estado Ativa, enquanto as Activities 1 e 2, que ainda estão executando porém não estão visíveis, foram para o estado Paradas.

Ao iniciarmos uma nova Activity, ela será colocada no topo da pilha de exibição das Activities. É como se fossemos empilhando as telas da aplicação, sendo que cada nova Activity será colocada no topo, e as anteriores ainda irão existir, mas estarão paradas. Elas só irão voltar a estar ativas quando a(s) Activity(ies) que estão acima delas forem finalizadas. Uma vez finalizada, uma Activity será removida do topo da pilha e a Activity imediatamente abaixo voltará a ficar ativa.

Conhecendo os estados da Activity, podemos estudar o seu ciclo de vida e quais são os métodos que o Android disponibiliza para prepará-la para passar por cada fase do ciclo.

Versão 5.3 - Todos os Direitos reservados