public void surpreenderUsuario(View v) {
Intent intent = new Intent(SaudacaoActivity.ACAO_EXIBIR_SAUDACAO);
45
2.5. Componentes de aplicação
Casa do Código
intent.addCategory(SaudacaoActivity.CATEGORIA_SAUDACAO);
String texto = nomeEditText.getText().toString();
intent.putExtra(SaudacaoActivity.EXTRA_NOME_USUARIO, texto);
startActivity(intent);
}
Já que a exibição da mensagem de saudação é responsabilidade de outra ativi-
dade, podemos excluir do layout utilizado pela MainActivity o TextView que
tinha esse papel. No arquivo de layout activity_main.xml, remova o último
TextView declarado, com o id @saudacaoTextView, pois não precisaremos
mais dele.
As últimas alterações para que nossa SaudacaoActivity possa responder a
uma Intent serão feitas no arquivo AndroidManifest.xml.
Vamos adicionar um novo bloco de activity, declarações nas quais estabele-
cemos que a SaudacaoActivity responde pela ACAO_EXIBIR_USUARIO e tam-
bém atende a intents que pertencem à CATEGORIA_SAUDACAO:
<activity
android:name="br.com.casadocodigo.helloandroid.SaudacaoActivity">
<intent-filter>
<action android:name="helloandroid.ACAO_EXIBIR_SAUDACAO" />
<category android:name="helloandroid.CATEGORIA_SAUDACAO" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Quando desejamos que uma
activity receba
intents implícitas,
é obrigatório que no
intent filter também seja incluída a categoria
android.intent.category.DEFAULT. Para cada activity é possível definir
vários intent filters, com configurações diferentes de ação e categoria. Já podemos executar a aplicação para testar! O resultado deve ser o mesmo apresentado na imagem 2.3.
2.5
Componentes de aplicação
Até aqui já desenvolvemos uma aplicação
de exemplo e já tivemos contato
com um dos componentes mais importantes da plataforma Android, que são as
46
Casa do Código
Capítulo 2. Entenda o funcionamento do Android
Activities. Agora chegou o momento de conhecer quais são os outros tipos de
componentes.
Para construir uma aplicação Android, podemos utilizar quatro tipos de compo-
nentes, cada qual com um propósito e ciclo de vida bem definidos, são eles: activities, services, content providers e broadcast receivers.
Activities - uma atividade representa uma tela com interface gráfica capaz de promover algum tipo de interação com o usuário. Já utilizamos este tipo de
componente para implementar nossa primeira aplicação. Uma aplicação An-
droid pode ser composta de diversas activities para fornecer um conjunto de
funcionalidades para o usuário.
Services - os serviços são componentes executados em segundo plano e que não dispõem de interface gráfica. Seu objetivo principal é realizar tarefas que podem consumir muito tempo para executar, sem comprometer a interação
do usuário com alguma activity. Tocar uma música ou fazer o download
de um arquivo são exemplos de funcionalidades que podem ser implementa-
das utilizando services.
Content providers - os provedores de conteúdo são componentes que per-mitem o acesso e modificação de dados armazenados em um banco de dados
SQLite local, de arquivos armazenados no próprio dispositivo ou mesmo da-
dos armazenados na web. Os content providers podem ser expostos para uso
por outras aplicações, com o objetivo de compartilhar dados, ou serem utili-
zados apenas pela aplicação que os contém.
Broadcast receivers - são componentes capazes de responder a eventos propagados pelo sistema operacional Android, como por exemplo o nível baixo
da bateria, ou eventos originados por uma aplicação, como o recebimento de
uma nova mensagem de texto.
Não é necessário que uma aplicação Android tenha todos estes componentes mas
é importante conhecê-los para que, no momento de projetar a aplicação, possamos selecionar o componente adequado para atender às necessidades. Nos capítulos 5 e 6 vamos explorar mais o uso de cada componente.
47
2.6. Ciclo de vida da Activity
Casa do Código
2.6
Ciclo de vida da Activity
A Activity é um componente de aplicação com um ciclo de vida específico.
Quando o usuário acessa a aplicação, navega pelas opções, sai ou retorna para a mesma, as atividades que a compõem passam por uma série de estados do ciclo de vida. Entender como ele funciona é importante para preparar a aplicação para lidar com situações que podem interferir na sua execução, tais como o recebimento de uma ligação, desligamento da tela do aparelho ou ainda a abertura de outra aplica-
ção feita pelo usuário. A imagem 2.6 ilustra o ciclo de vida da Activity.
Figura 2.6: Ciclo de vida da Activity. Fonte: developer.android.com
Sempre que a Activity muda de estado, o Android aciona um método (
callback) correspondente. Assim que o usuário inicia uma aplicação, o Android cria a atividade principal que está declarada no AndroidManisfest.xml e invoca o seu método onCreate. Como já vimos, é neste método que atribuímos qual layout será utilizado pela nossa atividade e também inicializamos variáveis e recursos necessários.