Escolar Documentos
Profissional Documentos
Cultura Documentos
Intent. Vamos aprender neste laboratrio como fazer uma Activity criada por ns responder estmulos de qualquer aplicao. Passo a passo: 1) Abra o Eclipse IDE 2) Crie um novo Projeto Android com os seguintes dados (se tiver dvidas sobre a criao de um novo projeto, por favor, verifique o Laboratrio 4 Criando um projeto Ol Mundo): Project Name: IntentFilter Build Target: Google APIs Application name: IntentFilter Package name: br.com.curso.android.intentfilter Create Activity: Principal Min SDK Version: 8 3) Abra o arquivo /res/layout/main.xml, arraste um componente <Button>, ajuste o texto para Enviar Intent. Depois acerte a propriedade android:onClick para enviarIntent
4) Crie uma nova Activity chamada Atividade2: crie um layout xml em /res/layout/ chamado atividade2.xml como LinearLayout, arraste um componente <TextView> e coloque o texto de Esta a atividade 2. (Caso tenha dvidas sobre como criar uma nova Activity, por favor refaa o laboratrio que trata deste assunto).
5) Crie uma nova classe Java chamada Atividade2.java e ajuste o cdigo conforme imagem abaixo:
Nota: A tag <intent-filter> o segredo para que a nossa Activity responda a estmulos do sistema. Definimos a propriedade <action android:name> para ATIVIDADE_2; isto significa que quando qualquer aplicao criar uma nova Intent que envie uma act ATIVIDADE_2, a nossa Activity ir ser notificada pelo sistema operacional e entrar em ao. Curiosidade: Os estmulos padro do Android tambm so enviados desta forma, por exemplo, quando chega uma ligao ou um SMS, o sistema operacional do Android envia uma Intent com um act padro com para que qualquer Activity registrada possa filtrar e ser acionada. Isto significa que possvel substituir qualquer aplicao nativa do telefone, basta que voc mapeie o evento correto. 7) Agora precisamos codificar o mtodo enviarIntent na classe Principal.java para que quando o usurio clicar no boto, a Intent seja enviada para o sistema operacional (lembre-
se que o mtodo enviarIntent foi mapeado na propriedade android:onClick do <Button> - vide passo 3):
8) Perceba que o mtodo enviarIntent cria uma nova Intent passando como parmetro (act) o texto ATIVIDADE_2, que exatamente o mesmo que mapeamos na propriedade <action android:name> da Atividade2 no arquivo AndroidManifest.xml. Isto envia uma mensagem para o sistema operacional que ir notificar qualquer Activity interessada neste sinal. 9) Execute a aplicao no emulador (RunAs Android Application) 10) Clique no boto Enviar Intent e veja que a Atividade2 surgir na tela 11) Olhe o LogCat e veja que foi enviada uma Intent act=ATIVIDADE_2 para o sistema operacional; qualquer Activity que estivesse registrada para reagir a este act, mesmo que fosse outra aplicao que voc no tem controle seria acionada; caso existam mais de uma Activity registrada, o Android exibe uma lista para que o usurio escolha qual aplicao ele deseja que seja executada.
Curiosidade: Voc pode substituir aplicativos padro do sistema Android desta forma; por exemplo, quando o usurio pressiona o boto Home do dispositivo, o Android envia um act android.intent.action.MAIN. Se voc quiser que sua aplicao seja a tela inicial, basta mapear no arquivo AndroidManifest.xml um <action android:name> com este nome. 12) Parabns. Voc agora j sabe como enviar Intents para o sistema operacional do Android e tambm sabe como mapear suas Acvtivities para que elas sejam acionadas por eles. Pesquise mais sobre o assunto! Mos Obra!
Mini curso Android Rodrigo Lopes Ferreira (rodrigo.lopes.ferreira@hotmail.com). Pgina 3 de 3