Comment répondre aux événements système avec des tâches en arrière-plan (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 créer une tâche en arrière-plan capable de répondre à des déclencheurs d’événements système. Les applications du Windows Store préservent l’expérience utilisateur, même lorsque l’application n’est pas au premier plan, en associant du code personnalisé léger à des événements SystemTrigger. Ce code personnalisé s’exécute dans des tâches en arrière-plan.

Ce que vous devez savoir

Technologies

Prérequis

  • Cette rubrique suppose qu’une classe de tâche en arrière-plan est écrite pour votre application et que cette tâche s’exécute en réponse à un événement déclenché par le système (par exemple, Internet qui devient accessible ou l’utilisateur qui se connecte). Votre application n’a pas à être sur l’écran de verrouillage pour exécuter les tâches en arrière-plan inscrites à l’aide des classes SystemTrigger et MaintenanceTrigger. Cette rubrique porte sur la classe SystemTrigger. Pour plus d’informations sur l’écriture d’une classe de tâche en arrière-plan, voir Démarrage rapide : créer et inscrire une tâche en arrière-plan.

Instructions

Étape 1: Créer un objet SystemTrigger

Dans le code de votre application, créez un objet SystemTrigger. Le premier paramètre, triggerType, indique le type d’événement de déclencheur système qui activera cette tâche en arrière-plan. Pour obtenir la liste des types d’événements, voir SystemTriggerType.

Le deuxième paramètre, OneShot, indique si la tâche en arrière-plan sera exécutée une seule fois la prochaine fois que l’événement système survient ou déclenche des tâches en arrière-plan, ou bien chaque fois que l’événement système survient jusqu’à ce que la tâche soit désinscrite.

Le code suivant spécifie que la tâche en arrière-plan s’exécute chaque fois qu’Internet devient accessible :

var internetTrigger = new Windows.ApplicationModel.Background.SystemTrigger(InternetAvailable, 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 la 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 en arrière-plan n’est exécutée que lorsque l’utilisateur se sert effectivement du périphérique (ou quand il devient disponible). Pour obtenir la liste des conditions de tâche en arrière-plan possibles, voir SystemConditionType.

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

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

Étape 3: 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 = “Internet-based background task”;

var task = RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition);

Remarque  

Dans les applications du Windows Phone Store, vous devez appeler l’élément RequestAccessAsync avant d’essayer d’inscrire une tâche en arrière-plan. Sur Windows, cet appel est requis uniquement pour l’ensemble de tâches en arrière-plan pour lesquelles votre application doit être sur l’écran de verrouillage pour s’exécuter, mais sur le téléphone, vous devez appeler cette méthode une fois avant d’inscrire une tâche en arrière-plan.

Pour vous assurer que votre application Windows Phone continue de s’exécuter correctement après la publication d’une mise à jour, vous devez appeler RemoveAccess, puis RequestAccessAsync lorsque votre application est lancée après avoir été mise à jour. Pour plus d’informations, voir Recommandations relatives aux tâches en arrière-plan (HTML).

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

Pour voir une inscription de tâche en arrière-plan en action, téléchargez l’exemple de tâche en arrière-plan.

Les tâches en arrière-plan peuvent s’exécuter en réponse à des événements SystemTrigger et MaintenanceTrigger sans être placées sur l’écran de verrouillage, mais vous devez toujours déclarer les tâches en arrière-plan dans le manifeste de l’application. Sur Windows Phone, vous devez également appeler RequestAccessAsync avant d’inscrire n’importe quel type de tâche en arrière-plan.

Les applications compatibles avec l’écran de verrouillage peuvent inscrire des tâches en arrière-plan qui répondent aux événements TimeTrigger, PushNotificationTrigger et NetworkOperatorNotificationTrigger, ce qui leur permet d’assurer une communication en temps réel avec l’utilisateur même lorsque l’application n’est pas au premier plan. Pour plus d’informations, 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éfinir des conditions pour exécuter une tâche en arrière-plan

Comment utiliser des déclencheurs de maintenance

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