multitasking
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Multitasking
Eduardo Ortega MVP Device Application Development
Windows Phone 7.5Modelo de ejecución
Windows Phone
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
Windows Phone
Ciclo de vida de una aplicación
Windows Phone
Ciclo de vida de una aplicación
running
deactivated
dormant
activated
Desasociar recursos del teléfonoThreads & timers suspendidos
Rápida reanudación de App
Guardar Estado!Estado conservado!IsAppInstancePreserved == true
Tombstone App más antigua
Tombstoned
Windows Phone
Modelo de aplicación
• OnNavigatedFrom/Deactivated– Salvar estado de página/ aplicación
• OnNavigatedTo/Activated– Resaturar estado de página/aplicación si
tombstoning
• WP7: la mayoría de las veces Apps Tombstoned
• Mango: Apps Tombstoned a veces
Windows Phone
Resumiendo la aplicación…
private void Application_Activated(object sender, ActivatedEventArgs e){ if (e.IsApplicationInstancePreserved) { // Dormant – objetos intactos en memoria } else { // Tombstoned – necesita recargar los datos }}
7
Demo
Fast Application Switching
Windows Phone 7.5Background Tasks
Windows Phone
Capacidades de multitasking
• Background Agents– Periodic– Resource Intensive
• Background Transfer Service
• Alarms and Reminders
• Background Audio
10
Windows Phone 7.5Background Agents
Windows Phone
Background Agents
• Agentes– Periodicos– Recursos Intensivos
• Una aplicación solo puede tener uno de cada
• Inicializado en primer plano, se ejecuta en segundo plano
– Persiste entre reinicios
• Control de usuario de la configuración– Maximo del sistema 18 agentes periódicos
• Los agentes se ejecutan hasta 14 días (pueden ser renovados)
Windows Phone
Tipos de agentes
Agentes Periodicos
• Ocurrencia– Cada 30 min
• Duración– ~15 seconds
• Restricciones– <= 6 MB Memoria– <=10% CPU
Agentes de Recursos Intensivos
• Ocurrencia– Fuente externa– Red no celular
• Duración– 10 minutos
• Restricciones– <= 6 MB Memoria
13
Windows Phone
Windows Phone
Funcionalidades de los agentes
Permitidas
Tiles Toast Location Network R/W ISO store Sockets Most framework APIs
Restringidas
Display UI XNA libraries Microphone and
Camera Sensors Play audio
(may only use background audio APIs)
14
Windows Phone
Depurando un Background Task
15
#if DEBUG_AGENT ScheduledActionService.LaunchForTest(taskName,
TimeSpan.FromSeconds(60));#endif
15
Demo
Background Agents
Windows Phone 7.5Background Notification Services
Alarmas vs Recordatorios
Alarmas
18
Recordatorios
•Modal•Snooze and Dismiss•Sound customization•No app invocation•No stacking
• Rich information• Integrates with other
reminders• Snooze and Dismiss• Launch app• Follows the phones global
settings
Windows Phone
Recordatorios
19
Windows Phone
Alarmas
20
Demo
Background Notification Services
Windows Phone 7.5Background Audio
Windows Phone
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
o Rutas locales a archivos del almacenamiento aislado
o URL a un archivo remotoo Restricción: archivos con formato
compatible (.mp3 o .wav)
• AudioStreamingAgent audio stream de la web
Windows Phone
Espacio de nombres: Microsoft.Phone.BackgroundAudio
Clase Descripción
AudioPlayerAgentImplementación de BackgroundAgent específica para reproducir audio en background
AudioStreamer Stream de audio que puede reproducirse mediante el reproductor del sistema
AudioStreamingAgent Agente en segundo plano que reproduce streaming por pista
AudioTrack Pista de audio
BackgroundAudioPlayer
Proporciona acceso en background a funcionalidades de reproducción como reproducir, pausar, adelantar o rebobinar
Enumeración Descripción Valores
EnabledPalyerControlsEspecifica los controles del reproductor habilitados en el interfaz de usuario
None, SkipNext, SkipPrevious, FastForward,Rewind, Pause, All
PlayState Posibles estados en los que se encuentra el reproductor con respecto a la aplicación actual con audio en background
Unknown, Stopped, Paused, Playing, BufferingStarted, BufferingStopped, TrackReady, TrackEnded, Rewind, FasForwarding, Shutdown, Error
UserAction Posibles acciones del usuarioStop, Pause, Play, SkipNext, SkipPrevious, FastForward, Rewind, Seek
Windows Phone
Background Audio
Demo: How To: Play BackgroundAudiohttp://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/
Demo
Background Audio
Windows Phone 7.5Background File Transfer
Windows Phone
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• BackgroundTransferService gestión
transferencias existentes• BackgroundTransferRequest una única petición• GET HTTP descarga y POST HTTP subida
Windows Phone
Requisitos de la aplicación
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
Obligatorio Recomendado
Windows Phone
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!!
Windows Phone
Políticas de transferencia de archivos• Transferencias iniciadas cuando se cumplan requisitos
BackgroundTransferRequest.TransferPreferences
• SO obliga a cumplir restricciones
Tamaños
Máximo archivo subida 5MB
Máximo tamaño de descarga en conexión de datos 20 MB (Si se sobrepasa TransferPreferences cambia a AllowBattery se precisa WiFi para la transferencia)
Máximo tamaño de descarga sobre WiFi sin alimentación externa 100MB
Máximo tamaño de descarga sobre WiFi con alimentación externa y TransferPreferences = None o AllowCellular
Sin límite
Máximo número de peticiones en cola (activas y pendientes) / aplicación
5 ( transferencias no eliminadas de la cola automáticamente aplicaciones deben llamar al método Remove(backgroundTransferRequest)
Windows Phone
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
Límites
Máximo número total de transferencias concurrentes (de todas las aplicaciones del dispositivo) 2
Máximo número total de transferencias encoladas (de todas las aplicaciones del dispositivo) 500
Máximo número de cabeceras HTTP por petición 10
Máximo tamaño de cabeceras HTTP 16K cada una
Demo
Background File Transfer
Q&A
GRACIASwww.micmovilidad.es
Eduardo Ortegahttp://geeks.ms/blogs/eduardoortegawww.micmovilidad.es
Jose Antonio Gallegohttp://geeks.ms/blogs/jagallego@lmovilero