A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Iniciando outras atividades. Intent INTENT = intenção? É um objeto-mensageiro usado para solicitar uma ação e mandar dados para alguma outra atividade.

Apresentações semelhantes


Apresentação em tema: "Iniciando outras atividades. Intent INTENT = intenção? É um objeto-mensageiro usado para solicitar uma ação e mandar dados para alguma outra atividade."— Transcrição da apresentação:

1 Iniciando outras atividades

2 Intent INTENT = intenção? É um objeto-mensageiro usado para solicitar uma ação e mandar dados para alguma outra atividade no Android. 3 usos: – Iniciar uma outra Activity(PendingIntent) pode ser do mesmo programa – Iniciar um Service(ServiceIntent) – Mandar uma mensagem para “todos”(BroadcastIntent) Opcional: quem foi chamado pode mandar dados de volta

3 Iniciando outra atividade do mesmo programa Intent intent = new Intent(estaActivity.this, outraActivity. class ); Intent.putExtra(“chave1”, “valor1”); Intent.putExtra(“chave2”, “valor2”); … startActivity(intent); – Chaves e valores são dependentes da aplicação Quem recebe: Intent intent = getIntent(); String valor1 = Intent.getExtraString(“chave1”); String valor2 = Intent.getExtraString(“chave1”);

4 Enviando diversos dados Quando há vários dados a enviar, e de vários tipos, pode-se criar e enviar um Bundle. Bundle pacote = new Bundle(); pacote.putExtra(“dado1”, “valor1”) pacote.putExtra(“dado2”, “valor2”) intent.putExtras (pacote); startActivity (intent); Quem recebe: Bundle pacote = intent.getExtras(); dado1 = pacote.getString(“dado1”);

5 Mandando dados, esperando volta Quem chama: Intent intent = new Intent(......); intent.putExtra(.....); startActivityForResult (intent, REQUEST_CODE);  código inventado por você Quem foi chamado, opera como anteriormente... Mas ao terminar tem que chamar o método finish(), que é implementado assim: @Override public void finish() { Intent dados = new Intent(); dados.putExtra(“valor1a", “xxxyyyzzz"); // pode haver vários valores... setResult(RESULT_OK, dados); super.finish(); }...... Continua...... >>>>>>

6 Recebendo o retorno Quem chamou originalmente tem que implementar onActivityResult @Override protected void onActivityResult(int reqCode, int resultCode, Intent data) { if (resultCode == RESULT_OK && reqCode == REQUEST_CODE) { if (data.hasExtra("returnKey1")) { Toast.makeText(this, data.getExtras().getString("returnKey1"), Toast.LENGTH_SHORT).show(); }

7 Intents implícitos Um aplicativo pode definir o componente de destino diretamente na intenção (intento explícito) ou pedir o sistema Android para avaliar componentes registrados com base nos dados de intenção (Intenções implícitas). Por exemplo: executa um intent dirigido a “sei lá que aplicação que saiba tirar fotos” Android define várias categorias pré-definidas, e para cada uma delas, as formas de bundles que podem ser enviados. Muitas vezes o bundle pode ser obtido pelo “parsing” de uma URI. – por exemplo, um site ou um e-mail. Por este bundle, o sistema consegue determinar a aplicação. String url = "http://intervox.nce.ufrj.br"; Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url)); startActivity(i);

8 Outro exemplo: telefonar Intent it = new Intent(Intent.ACTION_DIAL); Uri = Uri.parse(“tel:25983339”)); it.setData (Uri); startActivity(it); Isso é também chamado de Late Runtime Binding significa que o Android em tempo de execução resolver a classe que irá executar a ação, pode ser classe diferente aprofundado sobre o tipo de dados especificados

9 Outro exemplo: enviar email Usando chooser String uriText = "mailto:youremail@gmail.com" + "?subject=" + URLEncoder.encode("some subject text here") + "&body=" + URLEncoder.encode("some text here"); Uri uri = Uri.parse(uriText); Intent it = new Intent(Intent.ACTION_SENDTO); it.setData(uri); startActivity(Intent.createChooser(it, "Send email"));

10 Sua aplicação pode ser usada pelas outras aplicações Intent Filters: informação no Manifest indicando que a Activity consegue atender a certos pedidos.... Se algum intent pedir por “fotosEspeciais”, seu aplicativo “será aberto”.


Carregar ppt "Iniciando outras atividades. Intent INTENT = intenção? É um objeto-mensageiro usado para solicitar uma ação e mandar dados para alguma outra atividade."

Apresentações semelhantes


Anúncios Google