Directrices de tareas en segundo plano (aplicaciones de la Tienda Windows)
Crea mejores tareas en segundo plano para dar soporte a tu aplicación de la Tienda Windows y asegurarte de que cumple con los requisitos para ejecutar tareas en segundo plano.
Guía de tareas en segundo plano
Ten en cuenta la siguiente guía a la hora de desarrollar tus tareas en segundo plano y antes de publicar tu aplicación.
Cuotas de CPU y red: No excedas la cuota de CPU ni la cuota de uso de los datos de red aplicadas a tu tarea en segundo plano. Las tareas en segundo plano deben ser ligeras para ahorrar batería y proporcionar una mejor experiencia de usuario para las aplicaciones en primer plano. Consulta el tema Dar soporte a tu aplicación mediante tareas en segundo plano para obtener las restricciones de recursos que se aplican a las tareas en segundo plano.
Administrar tareas en segundo plano: Tu aplicación debería obtener una lista de tareas en segundo plano registradas, registrar para controladores de progreso y finalización, y controlar dichos eventos de forma adecuada. Tu clases de tareas en segundo plano debería informar del progreso, la cancelación y la finalización. Para obtener más información, consulta Cómo obtener una lista de tareas en segundo plano, Cómo controlar una tarea en segundo plano cancelada y Cómo supervisar el progreso y la finalización de tareas en segundo plano.
Usar BackgroundTaskDeferral.: Si tu clase de tareas en segundo plano ejecuta código asincrónico, asegúrate de usar aplazamientos. En caso contrario, tu tarea en segundo plano podría terminar de forma prematura cuando se complete el método Run. Para obtener más información, consulta Inicio rápido: creación y registro de una tarea en segundo plano.De forma alternativa, solicita un aplazamiento y usa async/await para completar las llamadas a métodos asincrónicos. Cierra el aplazamiento después de la llamadas al método await.
Actualizar el manifiesto de la aplicación: Declara todas las tareas en segundo plano en el manifiesto de la aplicación, junto con el tipo de desencadenador con el que se usan. En caso contrario, tu aplicación no podrá registrar la tarea en segundo plano en tiempo de ejecución. Si quieres más información, consulta el tema sobre el procedimiento para declarar tareas en segundo plano en el manifiesto de la aplicación.
Preparar para actualizaciones de la aplicación: Si tu aplicación se va a actualizar, crea y registra una tarea en segundo plano ServicingComplete (consulta SystemTriggerType) para llevar a cabo las actualizaciones de aplicaciones que puedan ser necesarias fuera del contexto de la ejecución en primer plano.
Tareas en segundo plano para aplicaciones compatibles con la pantalla de bloqueo: La pantalla de bloqueo es un recurso compartido. Solo se pueden colocar siete aplicaciones en la pantalla de bloqueo en un momento dado, y solo una de ellas puede mostrar un icono ancho. Tu aplicación puede proporcionar una buena experiencia de usuario solicitando acceso a la pantalla de bloqueo mediante el método RequestAccessAsync, y asegurándose de que tu aplicación seguirá funcionando cuando no esté en la pantalla de bloqueo. Aplicaciones que no están en la pantalla de bloqueo aún pueden actualizar iconos, actualizar distintivos, enviar notificaciones y registrar para desencadenadores de eventos del sistema. La experiencia del usuario cuando tu aplicación está en segundo plano nunca debe verse interrumpida, incluso si el usuario no ha colocado tu aplicación en la pantalla de bloqueo.Lee el tema Introducción a la pantalla de bloqueo para averiguar si la pantalla de boqueo es el lugar adecuado para tu aplicación.
Lista de comprobación de tareas en segundo plano
La siguiente lista de comprobación se aplica a todas las tareas en segundo plano.
-
Asocia tu tarea en segundo plano con el desencadenador correcto.
-
Agrega condiciones para asegurarte de que tu tarea en segundo plano se ejecuta correctamente.
-
Controla el progreso, la finalización y la cancelación de las tareas en segundo plano.
-
No muestres opciones de interfaz de usuario que no sean notificaciones del sistema, iconos o actualizaciones de distintivo procedentes de la tarea en segundo plano.
-
En el método Run, solicita aplazamientos para todas las llamadas a métodos asincrónicos y ciérralos cuando el método haya terminado.
O, usa un aplazamiento con async/await.
-
Usa almacenamiento persistente para compartir datos entre la tarea en segundo plano y la aplicación.
-
Declara todas las tareas en segundo plano en el manifiesto de la aplicación, junto con el tipo de desencadenador con el que se usan. Asegúrate de que el punto de entrada y los tipos de desencadenadores son correctos.
-
Escribe tareas en segundo plano de corta duración. No excedas la cuota de CPU o de red como se muestra en Dar soporte a tu aplicación mediante tareas en segundo plano.
-
No confíes en la interacción con el usuario en las tareas en segundo plano.
-
No especifiques un elemento Executable en el manifiesto a menos que estés usando un desencadenador que deberá ejecutarse en el mismo contexto que la aplicación (como por ejemplo el ControlChannelTrigger).
Lista de comprobación de tareas en segundo plano para aplicaciones compatibles con la pantalla de bloqueo
Sigue esta directriz cuando desarrolles tareas en segundo plano para aplicaciones aptas para estar en la pantalla de bloqueo. Sigue la directriz en Directrices y lista de comprobación de iconos de pantalla de bloqueo.
-
Asegúrate de que tu aplicación necesita estar en la pantalla de bloqueo antes de desarrollarla como una aplicación compatible con la pantalla de bloqueo. Para obtener más información, consulta Introducción a la pantalla de bloqueo.
-
Asegúrate de que tu aplicación sigue funcionando cuando no está en la pantalla de bloqueo.
-
Solicita acceso a la pantalla de bloqueo mediante el método RequestAccessAsync.
-
Incluye una tarea en segundo plano registrada con PushNotificationTrigger, ControlChannelTrigger o TimeTrigger, y declárala en el manifiesto de la aplicación. Asegúrate de que el punto de entrada y los tipos de desencadenadores son correctos. Esto es necesario para la certificación y permite al usuario colocar la aplicación en la pantalla de bloqueo.
-
Escribe tareas en segundo plano que sean de corta duración, incluso para aplicaciones compatibles con la pantalla de bloqueo. No excedas la cuota de CPU o de red como se muestra en Dar soporte a tu aplicación mediante tareas en segundo plano.
Temas relacionados
- Inicio rápido: creación y registro de una tarea en segundo plano
- Cómo registrar una tarea en segundo plano
- Cómo declarar tareas en segundo plano en el manifiesto de la aplicación
- How to debug a background task
- Cómo desencadenar los eventos suspender, reanudar y en segundo plano en aplicaciones de la Tienda Windows (al depurar)
- Otras guías relacionadas con la pantalla de bloqueo
- Introducción a las pantallas de bloqueo
- Visualización de iconos en la pantalla de bloqueo
- Directrices y lista de comprobación de iconos de pantalla de bloqueo
