Comment utiliser le déclencheur de maintenance (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 utiliser la classe MaintenanceTrigger pour exécuter du code léger en arrière-plan tandis que le périphérique est branché.
Ce que vous devez savoir
Technologies
Prérequis
- Cet exemple suppose que vous disposez d’un code léger à exécuter en arrière-plan qui vous permettra d’améliorer votre application pendant que le périphérique reste branché. Cette rubrique porte essentiellement sur la classe MaintenanceTrigger, qui est comparable à SystemTrigger en ce sens que l’application n’a pas besoin de figurer dans l’écran de verrouillage pour inscrire une tâche en arrière-plan MaintenanceTrigger. 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 déclencheur de maintenance
Créez un nouvel objet MaintenanceTrigger. Le deuxième paramètre, OneShot, indique si la tâche de maintenance 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.
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.
Cet exemple de code crée un déclencheur qui s’exécute une fois par heure :
var waitIntervalMinutes = 60;
var taskTrigger = new Windows.ApplicationModel.Background.MaintenanceTrigger(waitIntervalMinutes, 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 sur UserPresent afin que le travail de maintenance s’exécute lorsque l’utilisateur est actif (ou quand il le devient). Pour obtenir la liste des conditions de tâche en arrière-plan possibles, voir SystemConditionType.
Le code suivant ajoute une condition au générateur de tâches en arrière-plan :
var exampleCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.UserAway);
É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 = “Maintenance background task example”;
var task = RegisterBackgroundTask(entryPoint, taskName, taskTrigger, 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
Les événements du déclencheur de maintenance ne seront pas déclenchés si le périphérique n’est pas branché.
Remarque Si le périphérique est débranché, toutes les tâches en arrière-plan en cours d’exécution et dont le démarrage a été effectué par MaintenanceTrigger sont annulées (cancelReason = Abort). Si la tâche en arrière-plan n’est pas annulée dans les 5 secondes suivant la réception de l’événement d’annulation de la tâche en arrière-plan, elle est arrêtée. Pour plus d’informations, voir Comment gérer une tâche en arrière-plan annulée.
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 répondre aux événements système avec des tâches en arrière-plan
Comment définir des conditions pour exécuter 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