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
- En este tema, se asume que tienes una aplicación que registra tareas en segundo plano y que dichas tareas que registra administran la cancelación y el progreso, tal como se describe en Cómo controlar una tarea en segundo plano cancelada. Para comenzar rápidamente a crear una tarea en segundo plano, consulta Inicio rápido: creación y registro de una tarea en segundo plano. Para obtener información más detallada acerca de condiciones y desencadenadores, consulta Dar soporte a tu aplicación mediante tareas en segundo plano.
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