terça-feira, 28 de agosto de 2012

Entendendo os conceitos de Activity e Intent no Android


O que são Activities?

Uma activity é uma classe que implementa os métodos necessários para se construir uma tela em Android. Para os desenvolvedores Delphi, C#, seria equivalente a um Form. Para os desenvolvedores Java, seria algo parecido com um JFrame.

Toda aplicação Android possui necessariamente uma activity e esta pode chamar outras activities.

O ciclo de vida de uma Activity é representada na figura a seguir:

Existe um evento que pode ser utilizado para cada fase da vida de uma activity.

onCreate: é executada quando a activity é criada. Normalmente utilizado para inicializar os objetos, variaveis que serão utilizadas pela sua aplicação nesta Activity;

onStart: é executada antes da activity ficar visivel na tela do dispositivo;

onResume: é chamada logo após o evento onStart e neste momento a activity esta rodando e pronta para interagir com o usuario;

onPause: é chamada quando uma outra activity (da sua aplicação ou não) entrou no evento onResume.
A activity em onPause perde o foco e, logo mais ela será "congelada", para que consuma menos bateria e processamento;

onStop: chamada quando a activity ja não esta mais visivel ou quando a activity é encerrada;

onDestroy: é o momento onde a activity da seu "ultimo suspiro". Pode ser utilizada para finalizar a conexão com bancos de dados, fechar arquivos, liberar os recursos como camera, outros aplicativos, etc.
Após este evento a activity sera destruida e liberada da memoria.
O que são as Intents?

Como o próprio nome diz, Intent é a intenção que o programa tem. São os "nomes" ao qual cada aplicação do sistema responde.
Se a intenção da aplicação é abrir a tela de contatos, o sistema operacional responderá abrindo os contatos.
Segue um exemplo:

Uri contatos = Uri.parse("content://com.android.contacts/contacts");
Intent intentContatos = new Intent(Intent.ACTION_PICK, contatos);
startActivityForResult(intentContatos, 1);


Se sua aplicação chamar uma intent e, para esta houver mais de uma aplicação ligada a ela, como dois navegadores (Firefox e Chrome por exemplo), o sistema operacional mostrará ao usuário uma caixa de seleção, para que o proprio usuário escolha qual das aplicações tratará a execução da intent.


Em futuros posts, colocaremos na prática estes conceitos.

Até a próxima!

Um comentário:

  1. Alex muito obrigado mano... eu precisava entender melhor uma activity intent.

    ResponderExcluir