Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouMauro Castanho Caetano Alterado mais de 8 anos atrás
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”.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.