Windows Dev Center

Langage: HTML | XAML

Comment définir des conditions pour exécuter une tâche en arrière-plan (HTML)

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
How to debug a background task
Recommandations et listes de vérification concernant les tâches en arrière-plan

 

 

Afficher:
© 2015 Microsoft