Multitasking Eduardo Ortega MVP Device Application Development.

35
Multitasking Eduardo Ortega MVP Device Application Development

Transcript of Multitasking Eduardo Ortega MVP Device Application Development.

Page 1: Multitasking Eduardo Ortega MVP Device Application Development.

Multitasking

Eduardo Ortega MVP Device Application Development

Page 2: Multitasking Eduardo Ortega MVP Device Application Development.

Windows Phone 7.5Modelo de ejecución

Page 3: Multitasking Eduardo Ortega MVP Device Application Development.

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

Page 4: Multitasking Eduardo Ortega MVP Device Application Development.

Windows Phone

Ciclo de vida de una aplicación

Page 5: Multitasking Eduardo Ortega MVP Device Application Development.

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

Page 6: Multitasking Eduardo Ortega MVP Device Application Development.

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

Page 7: Multitasking Eduardo Ortega MVP Device Application Development.

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

Page 8: Multitasking Eduardo Ortega MVP Device Application Development.

Demo

Fast Application Switching

Page 9: Multitasking Eduardo Ortega MVP Device Application Development.

Windows Phone 7.5Background Tasks

Page 10: Multitasking Eduardo Ortega MVP Device Application Development.

Windows Phone

Capacidades de multitasking

• Background Agents– Periodic– Resource Intensive

• Background Transfer Service

• Alarms and Reminders

• Background Audio

10

Page 11: Multitasking Eduardo Ortega MVP Device Application Development.

Windows Phone 7.5Background Agents

Page 12: Multitasking Eduardo Ortega MVP Device Application Development.

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)

Page 13: Multitasking Eduardo Ortega MVP Device Application Development.

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

Page 14: Multitasking Eduardo Ortega MVP Device Application Development.

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

Page 15: Multitasking Eduardo Ortega MVP Device Application Development.

Windows Phone

Depurando un Background Task

15

#if DEBUG_AGENT ScheduledActionService.LaunchForTest(taskName,

TimeSpan.FromSeconds(60));#endif

15

Page 16: Multitasking Eduardo Ortega MVP Device Application Development.

Demo

Background Agents

Page 17: Multitasking Eduardo Ortega MVP Device Application Development.

Windows Phone 7.5Background Notification Services

Page 18: Multitasking Eduardo Ortega MVP Device Application Development.

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

Page 19: Multitasking Eduardo Ortega MVP Device Application Development.

Windows Phone

Recordatorios

19

Page 20: Multitasking Eduardo Ortega MVP Device Application Development.

Windows Phone

Alarmas

20

Page 21: Multitasking Eduardo Ortega MVP Device Application Development.

Demo

Background Notification Services

Page 22: Multitasking Eduardo Ortega MVP Device Application Development.

Windows Phone 7.5Background Audio

Page 23: Multitasking Eduardo Ortega MVP Device Application Development.

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

Page 24: Multitasking Eduardo Ortega MVP Device Application Development.

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

Page 25: Multitasking Eduardo Ortega MVP Device Application Development.

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/

Page 26: Multitasking Eduardo Ortega MVP Device Application Development.

Demo

Background Audio

Page 27: Multitasking Eduardo Ortega MVP Device Application Development.

Windows Phone 7.5Background File Transfer

Page 28: Multitasking Eduardo Ortega MVP Device Application Development.

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

Page 29: Multitasking Eduardo Ortega MVP Device Application Development.

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

Page 30: Multitasking Eduardo Ortega MVP Device Application Development.

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!!

Page 31: Multitasking Eduardo Ortega MVP Device Application Development.

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)

Page 32: Multitasking Eduardo Ortega MVP Device Application Development.

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

Page 33: Multitasking Eduardo Ortega MVP Device Application Development.

Demo

Background File Transfer

Page 34: Multitasking Eduardo Ortega MVP Device Application Development.

Q&A

Page 35: Multitasking Eduardo Ortega MVP Device Application Development.

GRACIASwww.micmovilidad.es

Eduardo Ortegahttp://geeks.ms/blogs/eduardoortegawww.micmovilidad.es

Jose Antonio Gallegohttp://geeks.ms/blogs/jagallego@lmovilero