300x250 AD TOP

Blogger news

AD (728x90)

Tecnologia do Blogger.

Colaboradores

Seguidores

Postagens populares

Tagged under:

Principais formas de invocar uma Activity – Parte II


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). 

<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>

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

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