350 likes | 496 Views
Multitasking. Eduardo Ortega MVP Device Application Development. Windows Phone 7.5 Modelo de ejecución. Modelo de ejecución. Mango introduce un nuevo estado: Dormant Reanudación de aplicaciones rápida (sin Resuming …) Se busca experiencia de usuario rápida y receptiva
E N D
Multitasking Eduardo Ortega MVP Device Application Development
Modelo de ejecución Mango introduce un nuevo estado: Dormant Reanudación de aplicaciones rápida (sin Resuming…) Se busca experiencia de usuario rápida y receptiva Una sola aplicación en primer plano Experiencia de navegación entre aplicaciones consistente Novedad en Mango: Mantener pulsado back button para cambiar a la aplicación anterior
Ciclo de vida de unaaplicación Rápidareanudación de App Estado conservado! IsAppInstancePreserved == true Guardar Estado! Tombstoned Tombstone App másantigua Desasociarrecursos del teléfono Threads & timers suspendidos
Modelo de aplicación • OnNavigatedFrom/Deactivated • Salvarestado de página/ aplicación • OnNavigatedTo/Activated • Resaturarestado de página/aplicaciónsitombstoning • WP7: la mayoría de lasveces Apps Tombstoned • Mango: Apps Tombstoneda veces
Resumiendo la aplicación… privatevoidApplication_Activated(object sender, ActivatedEventArgs e) { if (e.IsApplicationInstancePreserved) { // Dormant – objetosintactos en memoria } else { // Tombstoned– necesitarecargar los datos } } 7
Capacidades de multitasking • Background Agents • Periodic • Resource Intensive • Background Transfer Service • Alarms and Reminders • Background Audio
Background Agents • Agentes • Periodicos • RecursosIntensivos • Unaaplicación solo puedeteneruno de cada • Inicializado en primer plano, se ejecuta en segundoplano • Persiste entre reinicios • Control de usuario de la configuración • Maximo del sistema 18 agentesperiódicos • Los agentes se ejecutan hasta 14 días (puedenserrenovados)
Tipos de agentes Windows Phone 13 Agentes de RecursosIntensivos • Ocurrencia • Fuenteexterna • Red no celular • Duración • 10 minutos • Restricciones • <= 6 MB Memoria AgentesPeriodicos • Ocurrencia • Cada 30 min • Duración • ~15 seconds • Restricciones • <= 6 MB Memoria • <=10% CPU
Funcionalidades de los agentes Permitidas Restringidas • Tiles • Toast • Location • Network • R/W ISO store • Sockets • Most framework APIs • Display UI • XNA libraries • Microphone and Camera • Sensors • Play audio(may only use background audio APIs) 14
Depurando un Background Task #if DEBUG_AGENT ScheduledActionService.LaunchForTest(taskName, TimeSpan.FromSeconds(60)); #endif 15
AlarmasvsRecordatorios Alarmas Recordatorios • Rich information • Integrates with other reminders • Snooze and Dismiss • Launch app • Follows the phones global settings • Modal • Snooze and Dismiss • Sound customization • No app invocation • No stacking
Background Audio • Mango proporciona 2 agentes para reproducción de audio en segundo plano • AudioPlayerAgent reproducción de audio basada en URIs locales o remotas • Rutas locales a archivos del almacenamiento aislado • URL a un archivo remoto • Restricción: archivos con formato compatible (.mp3 o .wav) • AudioStreamingAgent audio stream de la web
Background Audio Demo: HowTo: Play BackgroundAudio http://msdn.microsoft.com/en-us/library/hh202978(v=VS.92).aspx http://dotnettrain.blogspot.com/2011/06/windows-phone-mango-background-audio.html http://www.c-sharpcorner.com/UploadFile/dhananjaycoder/7687/
Transferencia de archivos en Background • Descargas archivos ejecutándose segundo plano • Continúan aunque aplicación no esté ejecutándose primer plano • Posibilidad de encolar transferencias (subidas o descargas) • APIs consulta estado transferencias e indicadores de progreso • Espacio de nombres: Microsoft.Phone.BackgroundTransferService • BackgroundTransferServicegestión transferencias existentes • BackgroundTransferRequest una única petición • GET HTTP descarga y POST HTTP subida
Requisitos de la aplicación • Obligatorio • Recomendado • Transferencias iniciadas por el usuario o consciente de que se están ejecutando • Posibilidad de mostrar transferencias en proceso • Posibilidad de cancelar transferencias activas o pendientes • Posibilidad forzar transferencias sólo cuando haya WiFi
Restricciones del sistema de archivos • Transferencias requieren ruta archivo local • Descargas ruta específica de almacenamiento • Subidas ruta en la que se encuentra el archivo a enviar • Todas las rutas locales en almacenamiento aislado en directorio Transfers • Creado por el SO durante instalación • Puede albergar estructura de directorio adicional • Iniciar transferencia fuera directorio Transfers Exception!!
Políticas de transferencia de archivos • Transferencias iniciadas cuando se cumplan requisitosBackgroundTransferRequest.TransferPreferences • SO obliga a cumplir restricciones
Políticas de transferencia de archivos • SO obliga a cumplir restricciones • Servicio de transferencia segundo plano • No se ejecuta en redes • 2G • EDGE • GPRS Estándar • Requiere redes 3G o superiores
GRACIASwww.micmovilidad.es Eduardo Ortega http://geeks.ms/blogs/eduardoortegawww.micmovilidad.es Jose Antonio Gallego http://geeks.ms/blogs/jagallego@lmovilero