Lo primero que debemos saber es que solo podemos tener una agente de segundo plano en nuestra aplicación y este aparece en la sección de configuracion del telefono y el usuario puede detenerlo a su gusto.
Los agentes en segundo plano pueden ejecutarse de forma periódica o de forma intensiva (basadas en la clase PeriodicTask, o las tareas intensivas, basadas en la clase ResourceIntensiveTask). Las tareas periódicas funcionan ejecutándose cada X tiempo, las tareas intensivas se ejecutan durante 10 minutos siempre y cuando la batería sea superior al 90%, se esté conectado a la energía externa y ademas si esta conectado por Wifi o conexión a PC a internet, no por GPRS, además no debe existir una llamada activa, es un escenario bastante restrictivo. Como siempre el detalle de estas restricciones lo pueden encontrar en MSDN.
Con los agentes en segundo plano, debemos cuidar que el proceso que lancemos no sea pesado para consumir mucha bateria, ya que este puede ser un criterio por el cual nuestra aplicación sea rechazada en el Marketplace, por eso tenemos que tener en cuenta las restricciones. Debemos saber además que si se activa el modo ahorro de batería, esto puede retrasar hasta 10 minutos la ejecución de las tareas periódicas e incluso podria llegar a no ejecutarse.
Una de las restricciones que manejan los agentes tiene que ver con la memoria, si usamos más de 6 MB el sistema terminará la tarea. Además aunque disponemos de la ExpirationTime en nuestro agente, la fecha nunca podrá ser superior a dos semanas desde la fecha establecida en la propiedad BeginTime y tendremos que renovarlo.
Además debemos tener presente que no todas las APIs del teléfono están disponibles para los agentes en segundo plano, es el caso de la cámara, la radio, los sensores, el reproductor de audio, las transferencias en segundo plano, la navegación entre otras, las cuales encontrarán detalladamente en la documentación oficial de MSDN.
Recuerda que las notificaciones toast si están disponibles si lo que quieres es llamar la atención de un usuario desde tu agente en segundo plano.
Por el momento aquí dejo esta pequeña contextualización y ya vendrán más post donde les cuento como me va con mi implementación.
Sorey
No hay comentarios:
Publicar un comentario