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

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