Hacer que mi app se ejecute cuando el lock screen este activo | Windows Phone

Básico

Windows Phone Lock Screen

En Windows Phone cuando la pantalla de bloqueo se activa, bien sea voluntariamente o por tiempo de inactividad, las apps dejan de funcionar porque por defecto no se pueden ejecutar en segundo plano. Esto tiene un propósito muy importante y es el de ahorrar batería en el smartphone

Sin embargo a veces necesitamos que nuestra app no deje de ejecutarse aunque la pantalla de bloqueo (lockscreen) se haya activado, tal puede ser el caso de un videojuego donde una persona puede estar jugando y por algún motivo activa la pantalla de bloqueo, lo que el gamer esperaría es que al desbloquear el teléfono el juego siguiera tal y como lo esperaba, pero oh! no es así el juego se ha reiniciado. Porqué?

Porque se ha suspendió su ejecución, cuando el usuario desbloquea el Smartphone el sistema vuelve a lanzar el sistema a ejecución y si el programa no esta preparado lo lanza como una nueva instancia. Si el programa esta preparado eventualmente puede tratar de recuperar su estado anterior.

Pero qué sucede cuando el estado anterior no nos es relevante y deseábamos que realmente el programa siguiera su ejecución?

En ese caso debemos llamar el siguiente código desde nuestra App.

 PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;

Recuerda usarlo con prudencia y solo cuando sea necesario pues al enviar la app al proceso de certificación en el store revisaran los llamados que hagas a estas API’s así que sino están debidamente justificados tu app será rechazada.