Este documento describe los nuevos servicios de background disponibles en Windows Phone como Background Agents, Background Notifications y Background Transfers. Los Background Agents permiten ejecutar código en segundo plano a través de tareas periódicas o tareas intensivas en recursos, sujetas a limitaciones como la duración, uso de memoria y requisitos de alimentación y conectividad.
1. 12/09/2011
Nuevos servicios en Background
Background Background
Notifications Transfers
Multitasking
Background Background
Agents Audio
Nuevos servicios en Background Background Agent Service
Agente capaz de ejecutar código en background
Una tarea (Background agent) por aplicación
Background Background
Transfers Tienen su propio proyecto de Visual Studio
Notifications
Tareas vs Notificaciones
o Sólo dos tipos de programación no configurable:
Multitasking • Tareas periódicas (PeriodicTask)
• Tareas intensivas en recursos (ResourceIntensiveTask)
Background Background
• Una app puede declarar el agente como
Agents Audio • Tarea periódica
• Tarea intensiva en recursos
• Ambas
Una instancia del agente en cada instante
1
2. 12/09/2011
Background Agent Service Tareas Periódicas (PeriodicTask)
Cuando inician su ejecución el SO llama a OnInvoke() Ejecución regular durante breve periodo tiempo
En este método se indica el tipo de Tarea
Acceso a recursos (procesador, memoria…) limitado
Agente que completa su tarea debe llamar
• NotifyComplete() ejecución exitosa Escenario: adecuadas para tareas rápidas
• Abort() no se pudo completar la tarea propiedad IsScheduled a false o Cacheo pequeña cantidad de datos
Limitación Descripción
Limitación Descripción
Ejecución periódica cada 30 min. Para optimizar consumo de batería
Algunas APIs (Camera, VibrateController…), no pueden ser utilizadas Intervalo programado: 30 min pueden ejecutarse junto con otros procesos retraso en su ejecución
APIs no soportadas por tareas programadas Excepción o fallo en la certificación de hasta 10min
Marketplace Duración programado: 15 sec Ejecución de las rutinas durante 15 sec
No pueden consumir más de 6MB* o serán finalizadas inmediatamente.
Uso de memoria Modo ahorro de batería puede
Restricción no aplicada en el emulador ApplicationMemoryUsageLimit evitar su ejecución
Ahorro de energía es un modo opcional que prioriza la duración de batería
Requerida programación Propiedad ExpirationTime valor 1-15 días. Al transcurrir el tiempo Límite de agentes periódicos por
Depende de la configuración del dispositivo, máximo 6 agentes.
cada 2 semanas especificado la tarea no volverá a ser ejecutada. dispositivo
Tareas Intensivas en Recursos
Tareas Programadas
(ResourceIntensiveTask)
Ejecución poco frecuente durante largo periodo tiempo
Cuando no hay escasez de recursos (conectado a alimentación,
conexión WiFi…)
Escenario: sincronización gran cantidad de datos mientras
dispositivo duerme conectado al PC
Limitación Descripción
Demo: Cómo crearse una tarea en Background
Duración 10 min Tareas periódicas suelen ejecutarse durante 10 min
Requerida alimentación externa Sólo se ejecutan si hay alimentación externa
Requerida Conexión no
Sólo se ejecutan si hay conexión de red mediante WiFi o conexión a PC
telefónica
Nivel de batería mínimo No se ejecutan a menos que el nivel de batería sea superior al 90%
Requerido bloqueo de pantalla No se ejecutan en un dispositivo que esté activo
2
3. 12/09/2011
Recursos
Centro de desarrollo de WP7 en MSDN
http://msdn.microsoft.com/es-es/windowsphone/default.aspx
AppHub
http://create.msdn.com/
Windows Phone Developer Blog
http://windowsteamblog.com/windows_phone/b/wpdev
MobileNUG
http://www.mobilenug.es
Forums
http://forums.create.msdn.com/forums/
3