Invocando uma
Activity através de uma Intent
Como
vimos no post anterior, podemos usar uma Intent para chamar uma
determinada Activity em nosso aplicativo. Contudo o objetivo desse
post um pouco mais sobre o assunto e mostrar duas formas para invocar
uma Activity: explicita e implícita.
Invocar uma
Intent na forma Implícita
Então
imagine que temos uma Activity em nosso aplicativo chamada de
Activity1 e queremos que esta invoque uma segunda Activity, chamada
Activity2, conforme mostra a figura abaixo. Para que isto seja
possível, basta definirmos uma Intent na Activity1 dizendo ao
Android que temos a intenção de abrir uma outra Activity, em nosso
caso, a Activity2.
Invocar uma Activity através de uma Intent no
Android é simples e, para isto, usamos a seguinte sintaxe:
Intent i = new Intent(getApplicationContext(), Activity2.class); startActivity(i);
Também
é comum você encontrar o this, no primeiro parâmetro já
que este é também uma forma de informar o contexto atual do
aplicativo, entretanto é aconselhável utilizar o
getApplicationContext(), sempre funciona já o this em certos
casos pode não funcionar.
A
maneira que utilizamos a Intent acima para invocar uma outra Activity
é chamada de explicita devido ao fato de termos passado como
parâmetro o nome da Activity que queremos chamar. Usar uma chamada
explicita em uma Intent acaba deixando nosso código altamente
acoplado, uma vez que devemos saber o nome da Activity que queremos
chamar. Se o nome da Activity a ser invocada for modificado, por
exemplo, o código quebraria facilmente e então teríamos que
corrigir todas as outras classes que invocam esta Activity.
Dica
As Intents explícitas são usadas apenas para
chamadas entre componentes do mesmo aplicativo, já que é preciso
ter acesso direto e conhecer o componente que será invocado.
Reduzindo
o acoplamento com Intents implícitas
No exemplo anterior vimos como usar uma Intent
de forma explícita. Iremos agora aprender como reduzir o acoplamento
do nosso código ao usar as Intents, através das Intents implícitas.
As Intents implícitas são mais usadas quando desejamos fazer a
interação entre componentes de aplicativos diferentes.
Imagine, por exemplo, que você tem um
aplicativo que precise fazer a leitura de um código de barras e
executar uma ação com o resultado desta leitura. Ao invés de
desenvolver toda a funcionalidade para leitura de código de barras,
você pode delegar esta responsabilidade a um aplicativo que já o
faça e apenas obter o resultado da leitura realizada e executar a
ação desejada. Fazer isto é possível usando as Intents de forma
implícita. Veja a sintaxe básica do uso de uma Intent de forma
implícita:
Intent i = new Intent("br.com.nasemanadaprova.action.SEGUNDAACTIVITY"); startActivity(i);
Perceba que na forma implícita nós apenas
passamos para o construtor da Intent uma String informando o nome que
foi definido para o componente que desejamos invocar, neste caso uma
Activity. Este nome que passamos como uma String foi definido através
de um Intent Filter no AndroidManifest.xml (trecho de código
abaixo).
Note o quanto ficou desacoplado o nosso código,
pois desta forma não precisamos saber o nome da classe do componente
e nem mesmo ter acesso direto a ele pois o Android irá fazer o meio
de campo para que seu aplicativo consiga chegar até o componente
desejado.
Casso você queira conhecer um pouco mais sobre as Funcionalidades de uma Intent é só clicar em Próximo
<activity
android:name="br.com.nasemanadaprova.SegundaActivity" android:label="@string/title_activity_segunda_activity" > <intent-filter> <action android:name="br.com.nasemanadaprova.action.SEGUNDAACTIVITY " /> </intent-filter> </activity> |
Casso você queira conhecer um pouco mais sobre as Funcionalidades de uma Intent é só clicar em Próximo
Há sempre alguma loucura no amor. Mas há sempre um pouco de razão na loucura.Friedrich Nietzsche
0 comentários:
Postar um comentário