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

Modulo9 Background Agents

  • 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