Comment obtenir une liste des tâches en arrière-plan en attente (HTML)
[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]
Découvrez comment obtenir la liste des tâches en arrière-plan actuellement inscrites par votre application. Cette liste comporte des tâches en arrière-plan inscrites par l’application lors des sessions précédentes au premier plan, ce qui vous permet de vérifier avant de potentiellement réinscrire plusieurs fois une tâche en arrière-plan. Pour plus d’informations, voir Comment inscrire une tâche en arrière-plan.
Ce que vous devez savoir
Technologies
Prérequis
- Cette rubrique suppose que vous avez une application qui inscrit des tâches en arrière-plan et que celles-ci gèrent l’annulation et la progression, comme indiqué dans la rubrique Comment gérer une tâche en arrière-plan annulée. Pour vous lancer rapidement dans la génération d’une tâche en arrière-plan, voir Démarrage rapide : créer et inscrire une tâche en arrière-plan. Pour des informations plus détaillées sur les conditions et les déclencheurs, voir Définition de tâches en arrière-plan pour les besoins de votre application.
Instructions
Étape 1:
La liste des tâches en arrière-plan actuellement inscrites par l’application est conservée dans la propriété Windows.ApplicationModel.Background.BackgroundTaskRegistration.AllTasks. Servez-vous d’une boucle while pour parcourir cette liste et recherchez le nom de la tâche en arrière-plan.
Par exemple, l’exemple de tâche en arrière-plan utilise le code suivant pour vérifier que la tâche en arrière-plan servicing-complete n’est pas déjà inscrite avant de l’inscrire :
//
// 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();
}
Étape 2:
Une application qui inscrit des tâches en arrière-plan est susceptible de rechercher des inscriptions dans plusieurs cas. Vous pouvez faciliter cette tâche en créant une fonction pour rechercher une tâche en arrière-plan selon son nom. Si cette fonction ne trouve pas la tâche, elle retourne la valeur Null pour que, par exemple, votre application puisse déterminer s’il convient d’inscrire la tâche.
La fonction suivante peut être utilisée dans votre application :
//
// 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;
}
Rubriques associées
Démarrage rapide : créer et inscrire une tâche en arrière-plan
Comment inscrire une tâche en arrière-plan
Comment gérer une tâche en arrière-plan annulée
Comment surveiller la progression et l’achèvement des tâches en arrière-plan
Comment déclarer des tâches en arrière-plan dans le manifeste de l’application
Comment déboguer une tâche en arrière-plan
Recommandations et listes de contrôle concernant les tâches en arrière-plan