Définition de tâches en arrière-plan pour les besoins de votre application
TOC
Réduire la table des matières
Développer la table des matières
Langage: HTML | XAML

Définition de tâches en arrière-plan pour les besoins de votre application (XAML)

[ 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 classes légères 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 en suspens ou n’est pas en cours d’exécution. Les tâches en arrière-plan sont aussi utiles pour des applications de communication en temps réel (VoIP, messagerie électronique et messagerie instantanée, par exemple).

Les tâches en arrière-plan sont des classes séparées chargées d’implémenter l’interface IBackgroundTask. Vous inscrivez une tâche en arrière-plan à l’aide de la classe BackgroundTaskBuilder. Le nom de la classe est utilisé pour spécifier le 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 la classe 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éclencheurDescription

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

UserNotPresent

L’utilisateur doit être absent.

UserPresent

L’utilisateur doit être présent.

 

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. 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 sur Windows et toutes les 30 minutes sur Windows Phone, et les paramétrer de manière à ce qu’elles s’exécutent à une heure précise à l’aide de l’objet 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 Windows Phone peuvent utiliser tous les déclencheurs en arrière-plan pris en charge sans être épinglées à l’écran de verrouillage. Toutefois, une application du Windows Phone Store 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 du Windows Phone Store continue à s’exécuter correctement après que vous avez diffusé une mise à jour, vous devez appeler l’élément RemoveAccess, puis l’élément RequestAccessAsync lorsque votre application se lance 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éclencheurDescription

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

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 processeurTemps 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’actualisation15 minutes2 heuresQuotidienne
    Limite de données (dans l’écran de verrouillage)0,469 MoNon applicable45 Mo
    Limite de données (hors écran de verrouillage)Non applicable0,625 Mo7,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 Windows Phone

Outre les contraintes de ressources décrites dans la section précédente, les tâches en arrière-plan sur Windows Phone 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-plan512 Mo1 Go2 Go ou plus
Emplacement163040
Bluetooth161616
Maintenance terminée101010
Autres tâches en arrière-plan163040
Limite lors du débogage304050

 

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.

Garanties de ressources des tâches en arrière-plan pour la communication en temps réel

Afin que les quotas de ressource n’interfèrent pas avec la fonctionnalité de communication en temps réel, les tâches en arrière-plan qui utilisent les objets ControlChannelTrigger et PushNotificationTrigger bénéficient de quotas de ressources garantis (processeur et réseau) pour chaque tâche en cours d’exécution. Les quotas de ressource et les contraintes d’utilisation des données réseau sont ceux indiqués plus haut et demeurent inchangés pour ces tâches en arrière-plan (quelle que soit la consommation d’énergie de l’interface réseau).

Votre application n’a pas besoin d’effectuer une procédure différente pour obtenir les quotas de ressource garantis pour les tâches en arrière-plan ControlChannelTrigger et PushNotificationTrigger. Le système les traite toujours en tant que tâches en arrière-plan critiques.

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 de mise à jour

Windows Phone uniquement. La tâche de mise à jour est une tâche en arrière-plan qui s’exécute après que l’utilisateur a mis à jour votre application vers une nouvelle version. Cela permet à votre application d’effectuer des tâches d’initialisation, par exemple définir un canal de notifications Push, sans obliger l’utilisateur à lancer d’abord l’application. Pour plus d’informations, voir Comment utiliser la tâche de mise à jour.

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
Lancement, reprise et gestion 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

 

 

Afficher:
© 2016 Microsoft