Comment exécuter une tâche en arrière-plan sur un minuteur (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 planifier une tâche en arrière-plan unique ou exécuter une tâche en arrière-plan périodique associée à votre application du Windows Store. Si l’utilisateur place l’application sur l’écran de verrouillage, elle peut inscrire une tâche en arrière-plan qui est exécutée toutes les 15 minutes sur Windows et toutes les 30 minutes sur Windows Phone. Par exemple, une tâche en arrière-plan peut être utilisée pour fournir des mises à jour périodiques de vignettes ou de badges.

Ce que vous devez savoir

Technologies

Prérequis

  • Cet exemple suppose que vous disposez d’une tâche en arrière-plan qui doit être exécutée régulièrement, ou à une heure spécifique, pour prendre en charge votre application. Sur Windows, une tâche en arrière-plan ne s’exécutera qu’à l’aide d’un TimeTrigger si vous avez demandé que votre application soit placée sur l’écran de verrouillage avec un appel à RequestAccessAsync et que l’utilisateur accepte l’invite. Sur Windows Phone, vous devez appeler RequestAccessAsync, mais il n’y a pas d’invite utilisateur. Pour plus d’informations, voir Affichage de vignettes sur l’écran de verrouillage.
  • Cette rubrique suppose que vous avez déjà créé une classe de tâche en arrière-plan, incluant la méthode Run utilisée comme point d’entrée de la tâche en arrière-plan. 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: Créer un déclencheur de temps

Créez un TimeTrigger. Le second paramètre, OneShot, indique si la tâche en arrière-plan s’exécute une seule fois ou régulièrement. Si OneShot a la valeur True, le premier paramètre (FreshnessTime) indique le nombre de minutes à attendre avant de planifier la tâche en arrière-plan. Si OneShot a la valeur False, FreshnessTime indique la fréquence à laquelle la tâche en arrière-plan s’exécute.

Windows 8 intègre un minuteur qui exécute des tâches en arrière-plan par intervalles de 15 minutes. Notez que sur Windows Phone, l’intervalle est de 30 minutes.

  • Si FreshnessTime indique une fréquence de 15 minutes et si OneShot a la valeur True, la tâche sera exécutée une seule fois entre 0 et 15 minutes à partir du moment où elle sera inscrite.

  • Si FreshnessTime indique une fréquence de 15 minutes et si OneShot a la valeur False, la tâche sera exécutée toutes les 15 minutes, entre 0 et 15 minutes à partir du moment où elle sera inscrite.

Remarque  Si FreshnessTime a une fréquence inférieure à 15 minutes, une exception est levée lors de la tentative d’inscription de la tâche en arrière-plan.

 

Par exemple, ce déclencheur entraîne l’exécution d’une tâche en arrière-plan une fois par heure :

var hourlyTrigger = new Windows.ApplicationModel.Background.TimeTrigger(60, false);

Étape 2: (Facultatif) Ajouter une condition

Si besoin est, ajoutez une condition de tâche en arrière-plan afin de contrôler le moment où la tâche est exécutée. Une condition empêche votre tâche en arrière-plan de s’exécuter tant que la condition n’est pas satisfaite. Pour plus d’informations, voir Comment définir des conditions pour exécuter une tâche en arrière-plan.

Dans cet exemple, la condition est définie à UserPresent de sorte que la tâche n’est exécutée que lorsque l’utilisateur est actif. Pour obtenir la liste des conditions possibles, voir SystemConditionType.

Le code suivant ajoute une condition à la tâche en arrière-plan :

var userCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.UserPresent);

Étape 3: Demander l’accès à l’écran de verrouillage

Avant de tenter une inscription de la tâche en arrière-plan TimeTrigger, demandez l’autorisation à l’utilisateur d’ajouter l’application à l’écran de verrouillage en appelant RequestAccessAsync.

Sur Windows, le code suivant présente à l’utilisateur une boîte de dialogue qui lui demande d’ajouter votre application à l’écran de verrouillage. Sur Windows Phone, il demande juste au système d’autoriser votre application à exécuter des tâches en arrière-plan :

Windows.ApplicationModel.Background.BackgroundExecutionManager.RequestAccessAsync();

Remarque  Une application n’est autorisée à demander l’accès à l’écran de verrouillage qu’une seule fois. L’utilisateur peut choisir une seule des deux options, afin que sa préférence soit définie. Tous les appels ultérieurs de la méthode RequestAccessAsync seront ignorés.

 

Étape 4: Inscrire la tâche en arrière-plan

Inscrivez la tâche en arrière-plan en appelant la fonction qui vous permet de le faire. Pour plus d’informations sur l’inscription des tâches en arrière-plan, voir Comment inscrire une tâche en arrière-plan.

Le code suivant inscrit la tâche en arrière-plan :

var entryPoint = “js\\ExampleBackgroundTask.js”;
var taskName = “Example hourly background task”;

var task = RegisterBackgroundTask(entryPoint, taskName, hourlyTrigger, userCondition);

Remarque  

À compter de Windows 8.1, les paramètres d’inscription de la tâche en arrière-plan sont validés au moment de l’inscription. Une erreur est retournée si l’un des paramètres d’inscription n’est pas valide. Votre application doit être en mesure de gérer les scénarios dans lesquels l’inscription de la tâche en arrière-plan échoue. Par exemple utilisez une instruction conditionnelle pour rechercher les erreurs d’inscription, puis retentez l’inscription qui a échoué avec d’autres valeurs de paramètres.

 

Remarques

Remarque  Sur Windows, si l’utilisateur a ajouté votre application à l’écran de verrouillage (ou donné son autorisation lorsque votre application sollicite l’accès), l’inscription des tâches en arrière-plan ne sera possible qu’avec un déclencheur de temps (voir Affichage de vignettes sur l’écran de verrouillage). Les tâches en arrière-plan peuvent être associées à des déclencheurs qui n’exigent pas la présence de l’application sur l’écran de verrouillage. Pour obtenir des recommandations sur ces types de déclencheurs de tâche en arrière-plan, voir Définition de tâches en arrière-plan pour les besoins de votre application.

 

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