O que é uma Activity e como implementá-la?

Como já discutimos anteriormente, a Activity é o componente do Android responsável por mostrar telas ao usuário e permitir que ele interaja com essas telas através de toques e cliques. Cada Activity representa uma tela e a programação por trás dela. Por exemplo, no caso de uma aplicação de e-mails, uma Activity seria responsável pela tela da listagem de e-mails, outra responsável pela exibição de um e-mail que venha a ser selecionado na tela anterior, outra responsável pela criação de novos e-mails a serem enviados e assim por diante. Essas Activities, apesar de trabalharem para um objetivo comum, são independentes. Uma Activity, mesmo que seja parte de sua aplicação, pode ser inicializada por uma outra Activity, até mesmo de uma outra aplicação. Como fazer isso é cena dos próximos capítulos, mas já tenha em mente que é possível. Um exemplo comum disso é o caso de uma aplicação precisar mandar um e-mail ao longo de sua execução. Essa aplicação, para não ter o trabalho de refazer algo que já está pronto, pode simplesmente fazer uma chamada ao cliente de e-mails padrão do celular. Prático!

Agora que já refrescamos a memória e relembramos os conceitos de Activity vistos na primeira aula, vamos finalmente aprender a implementá-la. A Listagem 1 mostra a criação de uma Activity simples, apenas com os componentes básicos. Vejamos:

Listagem 1 - Código da Activity Aula04Activity.

Dessa Activity básica, podemos tirar alguns pontos que são comuns a todas as Activities. O primeiro deles é que toda Activity deve estender da classe android.app.Activity, ou de uma classe que estenda dela (aqui vale relembrar os conceitos de herança, vistos em Programação Orientada a Objetos!). Isso é necessário para que os comportamentos padrões das Activities possam ser tratados, independentemente do que sua Activity se proponha a fazer. Também por esse motivo, cada um dos callbacks que forem implementados na Activity, como vemos no exemplo do onCreate() da Listagem 1, deve conter uma chamada ao seu pai, através da utilização do super. O onCreate(), por sua vez, é o único callback que deve ser obrigatoriamente implementado. Ele é o responsável pela criação da Activity, como estudaremos adiante, no ciclo de vida da Activity.

Outro ponto a ser destacado é a nomeação do pacote na qual sua aplicação estará contida. Esse ponto não está relacionado diretamente com Activities, mas é um ponto importante a se ter em mente desde o começo do desenvolvimento. Como vimos, o Android aconselha sempre utilizar um endereço web que seja seu como nome do pacote. Isso evita que, por acidente, duas aplicações trabalhem com o mesmo nome de pacote, já que dois endereços web não podem ser iguais. Caso você não possua um endereço web, apenas tenha em mente que sua aplicação deve estar em um pacote que não venha a colidir no futuro com uma outra aplicação instalada no aparelho.

Uma vez com a Activity criada e programada da maneira que se deseja, o próximo passo é declará-la no AndroidManifest.xml. Esse arquivo, padrão em todas as aplicações Android e criado automaticamente ao se criar um novo projeto Android, é o arquivo responsável por guardar as configurações que são de interesse de toda a aplicação. É nesse arquivo que se define quais serão os modos de tela que a aplicação vai suportar, quais as funcionalidades do telefone que serão utilizadas pela aplicação, qual a versão atual da aplicação, entre outras informações e configurações. Outra coisa que esse arquivo contém é a declaração das Activities que são implementadas pela aplicação, bem como as intenções (ou eventos, que veremos em mais detalhes em aulas futuras) que cada uma dessas Activities deve responder. Vejamos na Listagem 2 a declaração da nossa Activity da Listagem 1 no AndroidManifest.

Listagem 2 - Declaração da Aula04Activity no AndroidManifest.xml. Veja que algumas partes não relevantes para a declaração da Activity foram omitidas.

Após ser declarada no AndroidManifest, a Activity está pronta para ser utilizada pela aplicação, ou até mesmo por outras aplicações, caso assim seja configurada. É importante lembrar-se de colocar cada nova Activity criada na sua aplicação dentro do Manifest, ou então erros que podem não fazer muito sentido, a princípio, podem ocorrer durante a execução de sua aplicação. Uma boa dica é colocar a Activity no Manifest assim que o arquivo for criado, antes mesmo de desenvolvê-lo! Por padrão, a IDE costuma fazer essa configuração assim que uma nova Activity é criada, mas não custa nada verificar!

Uma boa dica é criar a Activity pela parte gráfica do Android Studio. Para fazer isso, acesse o menu File -> New -> Activity e escolha o modelo desejado (por exemplo, Empty Activity, se você pretende criar uma Activity do zero). Ao utilizar esse método de criação para suas Activities, o Android Studio já se encarrega de declará-la adequadamente no AndroidManifest! Prático!

Agora que já vimos como criar e declarar uma Activity, precisamos conhecer os estados que ela pode ter ao longo de sua execução, bem como seu ciclo de vida completo, desde a criação, até a destruição. Esse conhecimento vai permitir criarmos aplicações que não deixam de funcionar, caso o usuário receba uma ligação, vire a tela ou até mesmo receba um aviso de bateria fraca.

Versão 5.3 - Todos os Direitos reservados