Définition de tâches en arrière-plan pour les besoins de votre application (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 ]

Les rubriques de cette section expliquent comment exécuter votre propre code léger en arrière-plan en répondant aux déclencheurs au moyen de tâches en arrière-plan. Les tâches en arrière-plan sont des fichiers JavaScript séparés que le système d’exploitation exécute en arrière-plan. Vous pouvez également recourir à des tâches en arrière-plan pour fournir des fonctionnalités lorsque votre application est suspendue ou n’est pas en cours d’exécution. En JavaScript, vous pouvez aussi exécuter des tâches en arrière-plan sur un minuteur.

Les tâches en arrière-plan utilisent l’espace de noms Windows.UI.WebUI.WebUIBackgroundTaskInstance pour collecter des informations sur l’instance actuelle de la tâche en arrière-plan. Vous inscrivez les tâches en arrière-plan à l’aide d’un objet BackgroundTaskBuilder. Le fichier JavaScript de la tâche en arrière-plan est spécifié en tant que point d’entrée lors de l’inscription de la tâche en arrière-plan.

Pour débuter rapidement avec une tâche en arrière-plan, voir Démarrage rapide : créer et inscrire une tâche en arrière-plan.

Tâches en arrière-plan pour événements système

Votre application peut répondre à des événements générés par le système en inscrivant une tâche en arrière-plan à l’aide de SystemTrigger. Une application peut utiliser au choix l’un des déclencheurs d’événements système suivants (définis dans SystemTriggerType) sans être placée sur l’écran de verrouillage.

Nom du déclencheur Description

InternetAvailable

Internet devient disponible.

NetworkStateChange

Une modification se produit sur le réseau liée, par exemple, au coût ou à la connectivité.

OnlineIdConnectedStateChange

ID en ligne associé aux modifications du compte.

SmsReceived

Un nouveau message SMS est reçu par un appareil mobile à haut débit installé.

TimeZoneChange

Le fuseau horaire est modifié sur l’appareil (par exemple, lorsque le système règle l’horloge pour le passage à l’heure d’été).

 

Pour plus d’informations, voir Comment répondre aux événements système avec des tâches en arrière-plan.

Conditions pour tâches en arrière-plan

Vous pouvez contrôler à quel moment la tâche en arrière-plan est exécutée, même après l’avoir déclenchée, en ajoutant une condition. Une fois déclenchée, la tâche en arrière-plan ne sera pas exécutée tant que toutes ses conditions ne seront pas remplies. Les conditions suivantes (représentées par l’énumération SystemConditionType) peuvent être appliquées.

Nom de la condition Description
InternetAvailable

Internet doit être accessible.

InternetNotAvailable

Internet ne doit pas être accessible.

SessionConnected

La session doit être connectée.

SessionDisconnected

La session doit être déconnectée.

 

Pour plus d’informations, voir Comment définir des conditions pour exécuter une tâche en arrière-plan.

Conditions requises pour le manifeste de l’application

Pour que votre application puisse inscrire une tâche en arrière-plan avec succès, vous devez au préalable la déclarer dans le manifeste de l’application. Pour plus d’informations, voir Comment déclarer des tâches en arrière-plan dans le manifeste de l’application.

Tâches en arrière-plan pour les applications compatibles avec l’écran de verrouillage

Les applications peuvent être placées dans l’écran de verrouillage pour communiquer en un clin d’œil des informations en temps réel à l’utilisateur. Les déclencheurs en temps réel suivants peuvent être utilisés pour exécuter du code léger personnalisé en arrière-plan pour les applications placées dans l’écran de verrouillage :

Canal de contrôle: Les tâches en arrière-plan peuvent conserver une connexion active et recevoir des messages sur le canal de contrôle, en utilisant l’objet ControlChannelTrigger. Pour plus d’informations, voir la rubrique relative à l’utilisation du déclencheur de canal de contrôle. (Notez que les tâches en arrière-plan de canal de contrôle peuvent uniquement être implémentées en C# ou en C++.) La classe ControlChannelTrigger n’est pas prise en charge sur Windows Phone.

Minuteur: Vous pouvez exécuter des tâches en arrière-plan toutes les 15 minutes et fixer leur exécution à un moment précis à l’aide du TimeTrigger. Pour plus d’informations, voir Comment exécuter une tâche en arrière-plan sur un minuteur.

Notification Push: Les tâches en arrière-plan répondent à l’objet PushNotificationTrigger pour recevoir des notifications Push brutes. Pour plus d’informations, voir Comment recevoir des notifications brutes.

Remarque  Applications du Windows Store uniquement. L’utilisateur doit placer votre application dans l’écran de verrouillage avant qu’elle ne puisse exploiter ces tâches en arrière-plan. Une application peut demander un accès à l’écran de verrouillage en appelant la méthode RequestAccessAsync. Cette méthode affiche une boîte de dialogue, qui demande à l’utilisateur d’autoriser ou non votre application à apparaître dans l’écran de verrouillage. Une application ne peut demander l’accès à un écran de verrouillage qu’une seule fois : tous les appels ultérieurs à RequestAccessAsync seront ignorés.

Remarque  

Les applications du Windows Phone Store peuvent utiliser tous les déclencheurs en arrière-plan pris en charge sans être épinglées à l’écran de verrouillage. Toutefois, une application de téléphone doit appeler l’élément RequestAccessAsync avant d’inscrire n’importe quel type de déclencheur 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 (applications Windows Runtime).

Déclencheurs d’événements système pour des applications compatibles avec l’écran de verrouillage

Remarque  L’énumération SystemTriggerType comprend les déclencheurs d’événements système que seules des applications compatibles avec l’écran de verrouillage peuvent utiliser. Une application doit être placée dans l’écran de verrouillage avant qu’elle ne puisse inscrire une tâche en arrière-plan avec l’un de ces déclencheurs d’événements système.

Nom du déclencheur Description

UserPresent

La tâche en arrière-plan est déclenchée dès que l’utilisateur est présent.

UserAway

La tâche en arrière-plan est déclenchée dès que l’utilisateur est absent.

ControlChannelReset

La tâche en arrière-plan est déclenchée lorsqu’un canal de contrôle est réinitialisé.

SessionConnected

La tâche en arrière-plan est déclenchée dès que la session est connectée.

 

Les déclencheurs d’événements système suivants s’adressent également à des applications compatibles avec l’écran de verrouillage. Ces déclencheurs peuvent être inscrits même lorsque l’application n’est pas placée dans l’écran de verrouillage, ce qui permet de reconnaître le moment où l’utilisateur a placé ou déplacé l’application de l’écran de verrouillage.

Nom du déclencheur Description

LockScreenApplicationAdded

Une vignette d’application est ajoutée à l’écran de verrouillage.

LockScreenApplicationRemoved

Une vignette d’application est supprimée de l’écran de verrouillage.

 

 

Contraintes de ressource des tâches en arrière-plan

Les tâches en arrière-plan sont légères. Le fait de limiter autant que possible l’exécution en arrière-plan est l’assurance d’une expérience utilisateur optimale pour les applications de premier plan et d’une plus grande durée de batterie. Pour cela, il convient d’appliquer des contraintes de ressource aux tâches en arrière-plan :

  • L’utilisation du processeur est limitée de la manière suivante.

    Quota d’utilisation du processeur Temps d’actualisation
    Application Windows non placée sur l’écran de verrouillage

    1 seconde

    2 heures

    Application Windows placée sur l’écran de verrouillage

    2 secondes

    15 minutes

    Applications Windows Phone

    2 secondes

    15 minutes

     

  • Dans le cas d’une exécution sur batterie (courant continu), l’utilisation des données réseau pour les tâches en arrière-plan est limitée. Cette limite est fonction de la quantité d’énergie utilisée par l’interface réseau. Elle varie donc selon l’appareil et l’environnement réseau mais peut être estimée.

    Le tableau suivant décrit le débit des données réseau, dans l’hypothèse d’un réseau WiFi soumis à des contraintes de ressource et capable de fournir un débit moyen de 1 Mbit/s. Pour estimer la limite correcte, multipliez la limite par le débit moyen en mégabits par seconde (Mbits/s) de la connexion. Par exemple, une application peut utiliser 25 Mo de données toutes les deux heures sur une connexion WiFi de 10 Mbits/s si elle est placée dans l’écran de verrouillage. L’exemple d’interface WiFi suppose une interférence minimale.

    Fréquence d’actualisation 15 minutes 2 heures Quotidienne
    Limite de données (dans l’écran de verrouillage) 0,469 Mo Non applicable 45 Mo
    Limite de données (hors écran de verrouillage) Non applicable 0,625 Mo 7,5 Mo

     

    Remarque  La limite de consommation des données réseau est levée dès le branchement de l’appareil sur le courant alternatif mais le quota d’utilisation du processeur reste appliqué. De même, les contraintes de ressource du processeur et du réseau sont suspendues pour les tâches en arrière-plan d’une application tant que l’utilisateur utilise celle-ci au premier plan.

     

Contraintes de ressources supplémentaires des tâches en arrière-plan pour les applications du Windows Phone Store

Outre les contraintes de ressources décrites dans la section précédente, les tâches en arrière-plan des applications du Windows Phone Store sont également soumises aux contraintes suivantes.

Contraintes de mémoire

En raison des contraintes de ressources liées au format du téléphone, en particulier pour les appareils disposant de peu de mémoire, les tâches en arrière-plan pour les applications Windows Phone ont une limite de mémoire qui détermine la quantité maximale de mémoire que la tâche en arrière-plan peut utiliser. Si votre tâche en arrière-plan dépasse cette limite, elle est arrêtée immédiatement. L’allocation de mémoire dépend du type de tâche en arrière-plan, ainsi que de la mémoire système totale de l’appareil sur lequel elle s’exécute. Vous devez prendre en compte ces limites lors du développement et du test de votre application. Vous pouvez également utiliser les API MemoryManager pour connaître votre utilisation actuelle de la mémoire et sa limite afin d’adapter votre utilisation au moment de l’exécution. Le tableau suivant répertorie les capacités de mémoire, en mégaoctets, correspondant aux types de tâches en arrière-plan spécifiés pour les différentes quantités de mémoire système totale sur l’appareil.

Type de tâche en arrière-plan 512 Mo 1 Go 2 Go ou plus
Emplacement 16 30 40
Bluetooth 16 16 16
Maintenance terminée 10 10 10
Autres tâches en arrière-plan 16 30 40
Limite lors du débogage 30 40 50

 

Limite par appareil pour les applications avec des tâches en arrière-plan pour les appareils disposant de peu de mémoire

Sur les téléphones disposant de 512 Mo de mémoire, le nombre d’applications pouvant être installées sur un appareil et l’utilisation de tâches en arrière-plan à tout moment sont limités. Si ce nombre est dépassé, l’appel à RequestAccessAsync, qui est requis pour inscrire toutes les tâches en arrière-plan sur Windows Phone, échoue.

Économiseur de batterie

Sur Windows Phone, la fonctionnalité Économiseur de batterie, lorsqu’elle est activée, empêche l’exécution de tâches en arrière-plan quand l’appareil n’est pas connecté à une source d’énergie externe et que la batterie passe sous une quantité d’énergie restante spécifiée. Cela ne vous empêche pas d’inscrire des tâches en arrière-plan.

Déclencheur de maintenance

Votre application peut également exécuter des tâches toutes les 15 minutes à l’aide du déclencheur de maintenance. Plutôt que de demander un placement dans l’écran de verrouillage, les tâches de maintenance sont exécutées uniquement lorsque le périphérique est branché sur le secteur. Pour plus d’informations, voir Comment utiliser des déclencheurs de maintenance.

Tâche en arrière-plan pour les capteurs et les périphériques

Votre application peut accéder à des capteurs et des périphériques à partir d’une tâche en arrière-plan à l’aide de la classe DeviceUseTrigger. Vous pouvez utiliser ce déclencheur pour des opérations longues telles que la synchronisation ou la surveillance de données. Contrairement aux tâches pour les événements système, une tâche DeviceUseTrigger peut être déclenchée uniquement pendant que votre application s’exécute au premier plan et aucune condition ne peut être définie dessus. Suivant son emplacement d’exécution (PC ou téléphone), une tâche en arrière-plan DeviceUseTrigger prend en charge des API différentes, et est soumise à des stratégies différentes. Pour en savoir plus sur ces différences, voir Accès aux capteurs et aux périphériques à partir d’une tâche en arrière-plan.

Certaines opérations de périphérique critiques, comme les longues mises à jour de microprogrammes, ne peuvent pas être exécutées avec le DeviceUseTrigger. De telles opérations ne peuvent être effectuées que sur le PC, et uniquement par une application privilégiée utilisant le DeviceServicingTrigger. Une application privilégiée est une application autorisée par le fabricant du périphérique à effectuer ces opérations. Les métadonnées de périphérique permettent de spécifier l’application définie, le cas échéant, comme application privilégiée d’un périphérique. Pour plus d’informations, voir Synchronisation et mise à jour des périphériques pour les applications de périphérique du Windows Store.

Gestion des tâches en arrière-plan

Les tâches en arrière-plan peuvent signaler leur progression, leur annulation et leur achèvement à votre application par le biais d’événements et du stockage local. Votre application peut également intercepter les exceptions levées par une tâche en arrière-plan et gérer l’inscription des tâches en arrière-plan lors des mises à jour des applications. Pour plus d’informations, voir :

Comment gérer une tâche en arrière-plan annulée

Comment obtenir une liste des tâches en arrière-plan en attente

Comment surveiller la progression et l’achèvement des tâches en arrière-plan

Comment utiliser le déclencheur ServicingComplete

Rubriques associées

Recommandations conceptuelles pour le multitâche sous Windows 8

Présentation des tâches en arrière-plan

Lancement, reprise et multitâche

Instructions d’interface utilisateur pour l’écran de verrouillage

Affichage de vignettes sur l’écran de verrouillage

Recommandations et liste de vérification sur les vignettes d’écran de verrouillage

Recommandations connexes en matière de tâches en arrière-plan

Recommandations et listes de contrôle concernant les tâches en arrière-plan

Comment déboguer une tâche en arrière-plan

Comment déclencher des événements de suspension, des événements de reprise et des événements en arrière-plan dans des applications du Windows Store (lors du débogage)

Accès aux capteurs et aux périphériques à partir d’une tâche en arrière-plan

Synchronisation et mise à jour des périphériques pour les applications pour périphériques du Windows Store