Share via


Cómo obtener una lista de tareas en segundo plano pendientes (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

Aprende a obtener una lista de tareas en segundo plano actualmente registradas por tu aplicación. Esta lista incluye tareas en segundo plano registradas por la aplicación durante sesiones anteriores en primer plano. De esta forma, puedes comprobar las tareas existentes para evitar registrar una misma tarea en segundo plano varias veces. Para obtener más información, consulta Cómo registrar una tarea en segundo plano.

Lo que debes saber

Tecnologías

Requisitos previos

Instrucciones

Paso 1:

La lista de tareas en segundo plano actualmente registradas por la aplicación se conserva en la propiedad Windows.ApplicationModel.Background.BackgroundTaskRegistration.AllTasks. Usa un bucle while para recorrer esta lista y buscar el nombre de la tarea en segundo plano.

Por ejemplo, la muestra de tarea en segundo plano usa el siguiente código para comprobar si la tarea en segundo plano de servicio completo ya está registrada antes de intentar registrarla:

//
// Check whether the servicing-complete background task is already registered.
//
var iter = Windows.ApplicationModel.Background.BackgroundTaskRegistration.allTasks.first();
var hascur = iter.hasCurrent;
while (hascur) {
    var cur = iter.current.value;
    if (cur.name === BackgroundTaskSample.servicingCompleteTaskName) {
        BackgroundTaskSample.updateBackgroundTaskStatus(BackgroundTaskSample.servicingCompleteTaskName, true);
        return;
    }
    hascur = iter.moveNext();
}

Paso 2:

Una aplicación que registra tareas en segundo plano probablemente buscará registros en más de un lugar. Para facilitar este trabajo, crea una función que busque una tarea en segundo plano por su nombre. Si la función no encuentra la tarea, devuelve NULL para que, por ejemplo, la aplicación pueda determinar si registrará la tarea.

Puedes utilizar la siguiente función en tu aplicación:

// 
// Check for a registration of the named background task. If one exists,
// return it.
// 
function FindTask(taskName) {

    var taskRegistered = false;

    var background = Windows.ApplicationModel.Background;
    var iter = background.BackgroundTaskRegistration.allTasks.first();
    var hascur = iter.hasCurrent;

    while (hascur) {
        var cur = iter.current.value;

        if (cur.name === taskName) {

            // 
            // The task is registered, return it.
            // 

            return cur;
        }

        hascur = iter.moveNext();
    }

    // 
    // The task was not found. Return null.
    // 
    return null;
}

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 administrar una tarea en segundo plano cancelada

Cómo supervisar el progreso y la finalización de tareas en segundo plano

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

Cómo depurar una tarea en segundo plano

Directrices y listas de comprobación para tareas en segundo plano