Share via


Directrices y lista de comprobación de tareas en segundo plano (HTML)

[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows en tiempo de ejecución. Si estás desarrollando para Windows 10, consulta la documentación más reciente

Crea mejores tareas en segundo plano para dar soporte a tu aplicación 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.

Cerrar tus tareas en segundo plano: No olvides que la tarea en segundo plano necesita llamar al método close() una vez finalizada. Si la tarea en segundo plano no se cierra a sí misma, el proceso que la ejecuta puede seguir consumiendo memoria y duración de batería, incluso después de que la tarea en segundo plano se complete o cancele.

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 Dar soporte a tu aplicación mediante tareas en segundo plano para conocer 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. Tus tareas en segundo plano deberían informar del progreso, la cancelación y la finalizació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.

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 en Windows: 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.

Solicitar la ejecución de tareas en segundo plano para las aplicaciones de la Tienda de Windows Phone:

Todas las aplicaciones de la Tienda de Windows Phone pueden ejecutar tipos de tareas admitidos sin anclarlos en la pantalla de bloqueo. Sin embargo, la aplicación debe llamar a RequestAccessAsync antes de registrar cualquier tipo de tarea en segundo plano. Este método devolverá BackgroundAccessStatus.Denied si se ha excedido el número máximo de aplicaciones con tareas en segundo plano en el sistema o si el usuario ha denegado explícitamente los permisos para tareas en segundo plano a tu aplicación en la configuración del dispositivo.

En el caso de las aplicaciones de la Tienda de Windows Phone, si se actualiza la aplicación, se debe llamar a RemoveAccess y después a RequestAccessAsync cuando se inicia la aplicación después actualizarse. Para determinar cuándo se ha actualizado la aplicación, debe realizar un seguimiento del número de versión de la aplicación con un valor almacenado en la configuración local. Cuando se inicia la aplicación, comprueba la versión de la aplicación y, si es más reciente que la versión en la configuración local, llama a RemoveAccess y RequestAccessAsync. Para ello, agrega código parecido a lo que se muestra a continuación y llámalo desde el controlador de eventos de inicio de la aplicación.

function checkAppVersion() {
    var localSettings = Windows.Storage.ApplicationData.current.localSettings;
    var pkgVersion = Windows.ApplicationModel.Package.current.id.version;
    var backgroundExecMgr = Windows.ApplicationModel.Background.BackgroundExecutionManager;

    var appVersion = pkgVersion.build + "." +
                        pkgVersion.major + "." +
                        pkgVersion.minor + "." +
                        pkgVersion.revision;

    if (localSettings.values["appVersion"] != appVersion)
    {
        // Our app has been updated
        localSettings.values["appVersion"] = appVersion;

        // Call removeAccess
        backgroundExecMgr.removeAccess();
    }
        
    backgroundExecMgr.requestAccessAsync();
}

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.

  • Llama a close() cuando la tarea en segundo plano haya terminado su trabajo.

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

  • Comprueba si hay errores de registro de tareas en segundo plano. Si es adecuado, intenta volver a registrar la tarea en segundo plano con otros valores de parámetros.

Windows: 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 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.

  • En el caso de las aplicaciones de la Tienda de Windows Phone, si el dispositivo se empieza a quedar sin memoria, es posible que las tareas en segundo plano finalicen sin advertencia previa y sin generar el evento OnCanceled. Esto contribuye a garantizar la experiencia del usuario de la aplicación en primer plano. La tarea en segundo plano debe estar diseñada para controlar este escenario.

Temas relacionados

Otros temas relacionados con las tareas en segundo plano

Inicio rápido: creación y registro de una tarea en segundo plano

Cómo registrar una tarea en segundo plano

Cómo depurar una tarea en segundo plano

Cómo declarar tareas en segundo plano en el manifiesto de la aplicación

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