Por que eu devo ler este artigo:Toda aplicação Android pode ser formada por uma ou mais Activities. Estas Activities são, na verdade, pequenas “atividades” executada uma de cada vez. A maneira mais fácil de entender as Activities é associar cada tela a uma Activity.

Para controlar todas estas Activities, já que apenas uma Activity pode ser executada de cada vez, existe a Activity Stack, ou pilha de Activity. Neste artigo apresentaremos detalhes do ciclo de vida de uma aplicação Android, bem como dicas para tirar proveito dela, melhorando ainda mais a aplicação desenvolvida.

Todo programador para dispositivos móveis sabe que a programação para estes difere em muitos aspectos ao desenvolvimento para computadores, por exemplo. De todos os aspectos, uma das maiores diferença é o tratamento do ciclo de vida das aplicações móveis.

Ao contrário de uma aplicação desktop, por exemplo, onde inúmeras aplicações podem ser executadas ao mesmo tempo, compartilhando recursos como tela, memória, processador, dispositivos de entrada e saída, entre muitos outros, em uma aplicação móvel os recursos são bem mais limitados, e o simples fato de haver compartilhamento de um determinado recurso pode comprometer a performance do dispositivo. Um exemplo é o uso simultâneo da tela.

Enquanto na programação desktop é muito comum que duas ou mais aplicações sejam executadas ao mesmo tempo, compartilhando a tela do computador (o usuário pode alternar entre uma tela e outra utilizando as teclas de atalho Alt+Tab no sistema operacional Windows ou Linux, por exemplo), em aplicações móveis este tipo de situação dificilmente é permitida. No próprio sistema operacional Android, considerado um dos melhores sistemas operacionais para dispositivos móveis, até por ser desenvolvido com base no Linux, tal recurso não é permitido.

Muitas vezes, o usuário de um aplicativo Android acredita que exista a alternância de contexto (Alt+Tab) no Android, já que às vezes estamos jogando e recebemos uma ligação, e logo após a ligação podemos voltar ao jogo e continuar, entretanto, quando a aplicação da ligação é executada, automaticamente o jogo entra em estado de parada, ou seja, o jogo fica parado até o termino da ligação, quando a tela do jogo é formatada para voltar ao ponto que estava antes da ligação.

Aparentemente, as duas aplicações (ligação e jogo) estavam executando em paralelo, quando na verdade, apenas uma aplicação estava sendo executada, já a outra estava parada (em background).

Neste artigo apresentaremos detalhes do ciclo de vida de uma aplicação Android, bem como dicas para tirar proveito dela, melhorando ainda mais a aplicação desenvolvida.

Funcionamento da Activity Stack

Toda aplicação Android pode ser formada por uma ou mais Activities, que são pequenas “atividades” executada uma de cada vez.

A maneira mais fácil de entender as Activities é associar cada tela a uma Activity. Esta prática não é uma regra, mas é adotada pela maioria dos programadores, assim, se o programa tiver uma tela, ela possui uma Activity, se tiver duas telas, duas Activities, se tiver n telas, n Activities, e assim por diante.

Entretanto, além das Activities codificadas pelos programadores e que fazem parte de um programa específico existem outras Activities, e estas fazem parte do pacote do sistema operacional Android.

Para controlar todas estas Activities, já que apenas uma Activity pode ser executada de cada vez, existe a Activity Stack, ou pilha de Activity. À medida que vão sendo executadas, as Activities passam a fazer parte desta pilha. Sendo assim, a base da pilha, pode-se dizer, é o sistema operacional Android.

Por exemplo, se você inicia sua aplicação, a qual possui o menu principal (ex. MenuPrincipalActivity.java), ela é inserida no topo da pilha. Imagine que o menu principal tem uma tela de cadastro de cliente e se iniciarmos esta tela (ex. CadastroClienteActivity.java), a Activity correspondente a ela será adicionada ao topo da pilha, perfazendo duas Activities.

Imagine ainda uma tela para escolher a cidade do cliente (ex. PesquisarCidadeActivity.java) que, por sua vez, abre uma nova tela com as cidades agrupadas por estado (ex. CidadesPorEstadoActivity.java). Enfim, são vários Activities .java em execução e quem controla estas é a Activity Stack, como apresentada na Figura 1.

Pilha de Activities em Execução
Figura 1. Pilha de Activities em Execução

Assim, todas as Activities anteriores ainda não foram finalizadas, somente estão em estado de parada, já que novas Activities foram executadas. Apenas a CidadesPorEstadoActivity está em execução e controlando a tela do device, por isso ela se encontra em destaque no topo da pilha.

Ao finalizar a CidadesPorEstadoActivity, automaticamente o controle da tela volta para a PesquisarCidadeActivity. Ao ser finalizada, o controle retorna a CadastroClienteActivitiy, e assim por diante até que não exista mais Activities na pilha, sendo então apresentada a tela principal do Android.

Dado esta característica para troca de telas, é necessário um controle especial ao iniciar uma nova tela, mas para isto, o ciclo de vida da Activity deve ser considerado, como apresentado na sequência.

Ciclo de vida de uma aplicação Android

De forma resumida, uma aplicação móvel pode estar em quatro estados distintos: em execução, em paus ...

Quer ler esse conteúdo completo? Tenha acesso completo