Tutorial Android (Parte III)
Por Abner Matheus Costa de Araújo
(abner.araujo@ccc.ufcg.edu.br)
No tutorial da edição anterior, aprendemos um pouco sobre a interface gráfica do Android. Neste, aprenderemos mais sobre activities.



Navegando entre janelas

Estamos craques em interface gráfica! Mas por mais que bonita que nossa janela seja, sempre vai haver uma hora que todas as informações não vão caber numa só janela. Precisamos criar outra(s), e fazer com que seja possível navegar entre elas, é claro!

Como fazemos isso? Acompanhe os seguintes passos…


1. Crie uma nova activity

Talvez você tenha entendido intuitivamente, talvez não, mas podemos chamar uma activity de janela! Então para criar uma nova janela, é preciso criar uma nova activity. Uma maneira fácil é copiando e colando de uma activity já existente (MainActivity). Vamos chamar essa nova activity de NovaActivity.



Uma activity por si só não faz muita coisa… Precisamos também criar um layout só para ela! Para isso, copie um layout já existe (activity_main.xml).



E agora precisamos voltar lá na classe Java recém-criada, a NovaActivity, e dizer que o layout da nossa activity é o que a gente acabou de fazer.



É na chamada do método “setContentView”, dentro do método onCreate, que a gente faz isso, passando um id. Id de um layout é diferente de um id de um botão, por exemplo. Esse ID é representado pelo nome do arquivo dentro da pasta layout.


Por último mas não menos importante, precisamos “registrar” essa activity num arquivo chamado “AndroidManifest.xml”, caso contrário, o Android não será capaz de reconhecê-lo. Portanto, vá num arquivo chamado “AndroidManifest.xml” do seu projeto (1).



Depois clique na aba AndroidManifest.xml (2). Um código em XML irá aparecer.



Ao abrir a aba, na linha abaixo do fechamento da tag , crie uma nova tag contendo o seguinte texto:



Onde “com.example.helloworld.NovaActivity” representa o caminho para a classe do meu activity (a primeira parte é o pacote e a seguinte o nome da classe).



Pronto! Nossa nova Activity está criada.


2) Chame o método para ir para outra activity

Claro, precisamos definir a parte programática agora. Para tanto, use as seguintes linhas de código:


Intent i = new Intent(ClasseOndeEstou.this, ClasseParaOndeQueroIr.class);

startActivity(i);


Se você ainda tem dúvida, é muito simples! Vamos supor que eu quero ir de “MainActivity” para “NovaActivity”. Isso geraria o seguinte código:



Fácil, não? Interessante perceber que as duas activities ficarão abertas, isto é, caso você aprte o botão de voltar do seu celular, ele voltará para activity antiga. É uma boa prática fechar toda activity que não for mais usar, para economizar memória desnecessária. Para tanto, basta adicionar a seguinte chamada de código:


finish();


E é isso. :) (Se você usar esse código sem que outra activity além da que você tá esteja aberta, ele simplesmente vai encerrar o programa).



O ciclo de vida uma activity

Até agora usamos bastante activities, mas não entramos em detalhes o que seria especificamente uma activity e o que eu posso fazer com ela.

Activity tem uma analogia com janelas, e assim como uma janela, uma activity pode ser fechada ou minimizada.



A imagem acima mostra todo o ciclo de vida de uma activity. Vamos desmembrar esse grafo.

Quando uma Activity é chamada (através do método startActivity), por exemplo, se *não* tiver ainda sido criada, o método que é chamada é o onCreate, caso contrário, o onStart é chamado.

Um bom exemplo de janela que foi chamada mas que já tinha sido criada foi no começo desse tutorial. Quando chamamos a activity sem usar finish() e voltamos para Main Activity, ela não deixou de ser criada, por isso o método onCreate não foi chamado novamente.

Mas aí aprendemos também que usando o “finish” encerramos a activity. O que isso significa? Que o método “onDestroy” é chamado. Analogamente, quando chamamos startActivity sem usar finish, o método que é chamado é o “onStop”. Complicado? Nem um pouco! Mas você deve estar se perguntando a utilidade prática desses métodos. Para convencê-lo, pensemos na seguinte situação hipotética:


Você tem um aplicativo que roda um reconhecer de voz em background (aplicações que rodam em backgroud normalmente são chamadas de Service no Android) e de repente o usuário recebe uma ligação telefônica. Se o usuário desejar atendê-la, é preciso que activity que estava sendo rodada pare. Mas, por padrão, o que seria parado seria apenas a interface gráfica do programa, meu serviço de reconhecer de voz continuaria sendo executado durante a ligação telefônica, o que seria bem desastroso, tanto para o funcionamento do meu aplicativo quanto para a bateria do usuário. Para isso, preciso fazer com que esse meu serviço pare dentro do método “onStop” da minha Activity usando algum método da API do reconhecedor de voz.


Esse foi só um exemplo hipotético. Na prática, existe uma infinidade de muitos outros, e é por isso que é tão importante estudar o ciclo de vida uma activity. Não se preocupe, naturalmente você encontrará mais utilidades para esses métodos no desenvolvimento de suas aplicações. O importante é saber que eles existem e quando são chamados.



Com isso terminamos nossa série de tutoriais sobre o Android. Claro, abordamos apenas uma pequena fração do que o Android pode oferecer, mas acreditamos que com esse conhecimento você já é capaz de criar aplicações simples. Esperamos que tenham gostado e não deixe de compartilhar com seus amigos! Até a próxima!


Jornal PETNews - Edição: Rafael Rêgo e Julie Pessoa- Revisão: Lívia Sampaio e Gleyser Guimarães
Grupo PET Computação UFCG, 2013. All rights reserved.