Comment définir des conditions pour exécuter une tâche 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 définir des conditions pour l’exécution de votre tâche en arrière-plan, qui permettent de l’exécuter uniquement de façon appropriée. Parfois, outre l’événement chargé de déclencher la tâche, une tâche en arrière-plan doit remplir certaines conditions pour pouvoir aboutir. Vous pouvez spécifier une ou plusieurs des conditions spécifiées par SystemConditionType au moment d’inscrire votre tâche en arrière-plan. La condition est vérifiée après que le déclencheur est activé ; la tâche en arrière-plan est mise en file d’attente et ne s’exécute qu’à partir du moment où toutes les conditions requises sont satisfaites.

L’affectation de conditions aux tâches en arrière-plan permet d’économiser l’autonomie de la batterie et le temps d’exécution processeur en empêchant toute exécution inutile des tâches. Par exemple, si votre tâche en arrière-plan est exécutée sur un minuteur et nécessite une connectivité Internet, ajoutez la condition InternetAvailable au TaskBuilder avant d’inscrire la tâche. Cela empêchera ainsi la tâche de faire inutilement appel aux ressources système et à l’énergie de la batterie et s’exécutera une fois que le minuteur sera arrivé à expiration et qu’Internet sera accessible.

Ce que vous devez savoir

Technologies

Prérequis

  • Cette rubrique suppose qu’une tâche en arrière-plan est déjà associée à votre application et que cette dernière comporte déjà du code qui crée un objet BackgroundTaskBuilder nommé taskBuilder.

Instructions

Étape 1: Créer un objet SystemCondition

Avant d’ajouter la condition, créez un objet SystemCondition représentant la condition qui doit être effective pour qu’une tâche en arrière-plan soit exécutée. Dans le constructeur, spécifiez la condition qui doit être remplie en fournissant une valeur d’énumération SystemConditionType.

Le code suivant crée un objet SystemCondition qui spécifie l’accessibilité à Internet comme étant une condition essentielle :

var internetCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.InternetAvailable);

Étape 2: Ajouter l’objet SystemCondition à votre tâche en arrière-plan

Pour ajouter la condition, appelez la méthode AddCondition sur l’objet BackgroundTaskBuilder et transmettez-lui l’objet SystemCondition.

Le code suivant inscrit la condition de tâche en arrière-plan InternetAvailable avec TaskBuilder :

taskBuilder.AddCondition(internetCondition);

Étape 3: Inscrire votre tâche en arrière-plan

Vous pouvez à présent inscrire votre tâche en arrière-plan à l’aide de la méthode Register ; la tâche ne démarrera pas tant que la condition spécifiée n’aura pas été satisfaite.

Le code suivant inscrit la tâche et stocke l’objet BackgroundTaskRegistration obtenu :


var task = taskBuilder.Register();

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.

 

Étape 4: Placer plusieurs conditions dans la tâche en arrière-plan

Pour ajouter plusieurs conditions, votre application effectue plusieurs appels à la méthode AddCondition. Pour être effectifs, ces appels doivent intervenir avant l’inscription de la tâche.

Remarque  Veillez à ne pas ajouter de conditions conflictuelles à une tâche en arrière-plan.

 

L’extrait de code suivant présente plusieurs conditions dans un contexte de création et d’inscription d’une tâche en arrière-plan :

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

var recurringTaskBuilder = new Windows.ApplicationModel.Background.BackgroundTaskBuilder();

recurringTaskBuilder.Name = "Hourly background task for YourApp";
recurringTaskBuilder.TaskEntryPoint = "js\\ExampleBackgroundTask.js";
recurringTaskBuilder.SetTrigger(hourlytrigger);

//
// Begin adding conditions.
//
var userCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.UserPresent);
var internetCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.InternetAvailable);

taskBuilder.AddCondition(userCondition);
taskBuilder.AddCondition(internetCondition);

//
// Done adding conditions. Now we register the background task.
//
var task = recurringTaskBuilder.Register();

Remarques

Remarque  Choisissez les conditions appropriées pour votre tâche en arrière-plan de sorte qu’elle s’exécute uniquement lorsque cela est nécessaire et non à un moment où elle sera inopérante. Voir SystemConditionType pour obtenir une description des différentes conditions de tâche en arrière-plan.

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