Your SlideShare is downloading. ×
0
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Tema 4.6 Intenciones
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Tema 4.6 Intenciones

353

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
353
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Análisis y Diseñode SoftwareDepartamento de Ingeniería de Sistemas Telemáticoshttp://moodle.dit.upm.esIntencionesActividades que se comunicanCarlos A. Iglesias <cif@gsi.dit.upm.es>
  • 2. Intenciones 2Temario● 4.1 Introducción a Android● 4.2 Introducción Desarrollo con Android● 4.3 Ejemplo Desarrollo y Depuración● 4.4 Actividades● 4.5 Interfaces de Usuario● 4.6 Intenciones● 4.7 Acceso a Datos● 4.8 Preferencias● 4.9 Hebras e internacionalización
  • 3. Intenciones 3TeoríaEjercicio práctico en el ordenadorAmpliación de conocimientosLectura / Vídeo / PodcastPráctica libre / ExperimentaciónLeyenda
  • 4. Intenciones 4● Android DevelopersBibliografíahttp://developer.android.com/training/basics/intents/index.html
  • 5. Intenciones 5Objetivos● Aprender a hacer aplicaciones con más deuna pantalla● Entender cómo funciona el mecanismo deIntenciones en Android
  • 6. Intenciones 6Intenciones● Una aplicación en Android normalmentetiene varias actividades● Para pasar el control de una actividad aotra usamos Intenciones (Intent)● Las actividades se comunican entre sí deforma asíncrona e indirecta
  • 7. Intenciones 7Tipos de intenciones● Explícita: indicamos el componente (claseexacta) que va a ejecutar la intención● Implícita: el sistema determina (resuelve)qué componente debe procesar alintención.– Si hay más de una aplicación que puederealizar esa intención, el usuario puedeseleccionar cuál usar
  • 8. Intenciones 8Creando una intenciónimplícita● Las intenciones implícitas se construyenindicando– Acción: acción que queremos ejecutar,predefinida (ACTION_VIEW, ACTION_DIAL,…) o creada por el usuario.– Datos: datos sobre los que opera la acciónexpresados como una URI (número deteléfono, contacto, ...)
  • 9. Intenciones 9Ej. Intención implícitapredefinida● Llamar por teléfono●Abrir una página webhttp://developer.android.com/guide/appendix/g-app-intents.html
  • 10. Intenciones 10Intenciones explícitas● Indicamos de que actividad (this) a quéactividad queremos ir● Podemos pasar datos con putExtra()– En la actividad que recibe la Intent, losrecupera con getExtras().getString(“clave”) (ogetBoolean(), getInt()... mirar api de Bundle).
  • 11. Intenciones 11Actividades e IntencionesActividad MainSub-Actividad 1Sub-actividad 2Intent Result IntentAplicaciónAndroid
  • 12. Intenciones 12Ejemplo pares acción / datos● ACTION_VIEW content://contacts/people/1 –muestra información sobre la persona con id 1● ACTION_DIAL content://contacts/people/1 – muestrael teléfono con el número marcado de la persona conid 1● ACTION_VIEW (o ACTION_DIAL) tel:134 – muestrael teléfono con el número 134 marcado● ACTION_EDIT content://contacts/people/1 – edita lainformación del contacto con id 1● ACTION_VIEW content://contacts/people – muestrauna lista de contactos
  • 13. Intenciones 13Parámetros adicionales● Además de los parámetros principales,podemos detallar más– Type: MIME type, normalmente se pone biensolo.– Extras: añadir más datos para una acción.P.ej. Para email (subject, body, …)
  • 14. Intenciones 14Acciones estándar paraIntenciones●ACTION_MAIN●ACTION_VIEW●ACTION_ATTACH_DATA●ACTION_EDIT●ACTION_PICK●ACTION_CHOOSER● ACTION_GET_CONTENT●ACTION_DIAL●ACTION_CALL●ACTION_SEND●ANCTION_SENDTO●ACTION_ANSWER●ACTION_INSERT●ACTION_DELETE●ACTION_RUN●ACTION_SYNC●ACTION_PICK_ACTIVITY●ACTION_SEARCH●ACTION_WEB_SEARCH●ACTION_FACTORY_TESThttp://developer.android.com/reference/android/content/Intent.html
  • 15. Intenciones 15Verificar intencionesimplícitas● En las intenciones implícitas, podemoscomprobar si algún componente va aresponder a la intención● P.ej. En nuestro teléfono no hay unacaracterística
  • 16. Intenciones 16Ej. mapas comprobando si esseguro
  • 17. Intenciones 17Selección de aplicación porel usuario● Cuando hay variasaplicaciones quepueden realizar unaintención, el usuariopuede escoger unapor defecto● En otras ocasiones,queremos queescoja cada vez, seutiliza un chooser
  • 18. Intenciones 18Ej. chooser
  • 19. Intenciones 19Formas de pasar el control
  • 20. Intenciones 20Invocar una intención● startActivity(intent) → lanza una actividad● sendBroadcast(intent) → envía una intención a todoslos componentes BroadcastReceiver● startActivityForResult(intent, requestCode) →– lanza una actividad, que devuelve un resultado consetResult(resultCode), predefinidos: RESULT_OK oRESULT_CANCELED, o bien personalizadoscomenzando en RESULT_FIRST_USER.• Para volver a la actividad anterior llamamos a finish() paraterminar la actividad– La actividad recibe el resultado en el método de callbackonActivityResult(requestCode,resultCode,intent)
  • 21. Intenciones 21Obtener un resultado
  • 22. Intenciones 22onActivityResult()
  • 23. Intenciones 23Filtros de intenciones (I)● Si queremos que una actividad nuestra pueda serlanzada por otra actividad de otra aplicación, debemosindicar un intent-filter en el manifiesto. Declaramos– Action – nombre de la acción que realizamos.Normalmente uno predefinido como ACTION_SEND (paracompartir) o ACTION_VIEW– Data – descripción de los datos asociados: tipo mime(text/plain) o prefijo URI (htt) o una combinación– Categoría: gesto o sitio desde puede ser llamado,normalmente CATEGORY_DEFAULT
  • 24. Intenciones 24Filtros de Intenciones (II)
  • 25. Intenciones 25Varios filtros● Determinamos qué tipo de intención nosllamó si tenemos varios filtros
  • 26. Intenciones 26Devolver resultado● Indicamos resultado con setResult() yfinish()...●Y así vuelve a la actividad que le llamó
  • 27. Intenciones 27Ejemplo. Activar Accionesestándar●Vamos a hacer unejemplo– Llamar aintencionesestándar– Lanzar otrasactividades
  • 28. Intenciones 28Crear Lista OpcionesListView para ver una lista@android:id/list → layoutde Android para listas@android:id/empty → si lalista está vacía
  • 29. Intenciones 29Crear Lista opciones
  • 30. Intenciones 30¡Lanzamos!
  • 31. Intenciones 31Vamos a usar Intenciones
  • 32. Intenciones 32Acción estándar: llamar
  • 33. Intenciones 33Acción estándar:listar contactosHay quecrearlosen elemulador
  • 34. Intenciones 34Acción estándar:editar/ver contacto
  • 35. Intenciones 35Acción estándar: ver web
  • 36. Intenciones 36Acción estándar:mandar correo
  • 37. Intenciones 37Acción estándar:compartir
  • 38. Intenciones 38Emulador vs realNo encuentra actividad quemande correoSí va en el teléfono
  • 39. Intenciones 39Seleccionar un contacto● En este caso llamo a una actividad– Me devuelve un resultado● Con el resultado llamo a otra actividad● Para esto, uso– startActivityForResult()– onActivityResult()
  • 40. Intenciones 40Seleccionar un contacto
  • 41. Intenciones 41Seleccionar un contactoNecesario para elcódigo anterior
  • 42. Intenciones 42Pasar datos entreActividades● Tipos primitivos– Pasarlo en el Intent (con putExtra)– Si tiene que persistir, usar Preferencias● Objetos no persistentes– Usar una clase Singleton– Las actividades extienden la clase android.app.Application yrecuperan los campos con getApplicationContext()● Objetos persistentes:– Preferencias, Base de Datos, Proveedores de Contenidos,Ficheroshttp://developer.android.com/guide/faq/framework.html
  • 43. Intenciones 43Ejemplo ListaCompra. Editar
  • 44. Intenciones 44Ejemplo ListaCompra. Añadir
  • 45. Intenciones 45Ejemplo● Inspeccionar...– ¿Cómo guardamoslos productos?– ¿Cómo secomunican lasactividades?– ¿Cómo hacemos elmenú?
  • 46. Intenciones 46Resumen● En este tema hemos aprendido a– Definir preferencias de usuario, y usarlas en unprograma– Qué son las intenciones, y comunicaractividades mediante ellas– Algunas acciones estándar para lanzaractividades
  • 47. Intenciones 47¿Preguntas?

×