Cycle de vie d’une application (applications Windows Runtime)

Applies to Windows and Windows Phone

Cette rubrique décrit le cycle de vie d’une application, de l’instant où elle est déployée jusqu’à sa suppression. En suspendant et en reprenant correctement votre application, vous assurez à votre client une expérience optimale avec celle-ci.

État d’exécution de l’application

Cette illustration représente les transitions entre les états d’exécution de l’application. Les sections suivantes de cette rubrique décrivent ces états et événements. Pour plus d’informations sur le moment où chaque transition se produit et quelle doit être la réponse de votre application, voir la documentation relative à l’énumération ApplicationExecutionState.

Diagramme d’état illustrant les transitions entre les états d’exécution de l’application

Lancement d’une application

Une application est lancée chaque fois qu’elle est activée par l’utilisateur lorsque l’état du processus est NotRunning. Une application peut ne pas être en cours d’exécution pour plusieurs raisons : elle n’a pas encore été démarrée, elle s’est bloquée lors d’une exécution précédente, ou elle a été arrêtée à défaut de pouvoir être gardée en mémoire après une suspension.

Lors du lancement d’une application, le système d’exploitation affiche un écran de démarrage pour l’application. Pour configurer cet écran de démarrage, voir Ajout d’un écran de démarrage.

Pendant que son écran de démarrage est affiché, une application doit s’assurer que son interface utilisateur est prête à être affichée à l’utilisateur. Les tâches principales pour l’application consistent à inscrire des gestionnaires d’événements et à configurer une interface utilisateur personnalisée dont elle a besoin pour le chargement. Ces tâches ne doivent prendre que quelques secondes. Si une application doit demander des données au réseau ou récupérer de grandes quantités de données à partir du disque, ces activités doivent être effectuées hors activation. Une application peut utiliser sa propre interface utilisateur de chargement personnalisée ou un écran de démarrage étendu pendant qu’elle attend la fin de ces longues opérations. Pour plus d’informations, voir la documentation sur l’écran de démarrage étendu et l’exemple d’écran de démarrage. Une fois que l’application a terminé l’activation, elle entre dans l’état Running et l’écran de démarrage disparaît. Affichage d’une fenêtre, retour du gestionnaire d’activation et réalisation d’un report : tels sont les procédés spécifiques qu’utilise une application pour mener à bien une activation. Pour plus d’informations, voir :

Activation d’une application

Une application peut être activée par l’utilisateur via différents contrats et extensions. Pour participer à l’activation, votre application doit s’inscrire pour recevoir l’événement Activated | activated. Le gestionnaire d’événements d’activation de votre application peut réaliser un test pour déterminer la raison de son activation et s’il se trouvait déjà dans l’état Running. Les applications peuvent être activées comme suit.

Type d’activationDescription
fichier mis en cacheL’utilisateur souhaite enregistrer un fichier dont votre application gère le contenu.
appareil photoL’utilisateur souhaite capturer des photos ou une vidéo à partir d’un appareil photo raccordé.
sélecteur de contactsL’utilisateur souhaite sélectionner des contacts.
périphériqueL’utilisateur souhaite que votre application gère la lecture automatique.
fichierL’application d’un utilisateur a lancé un fichier dont le type est géré par votre application.
sélecteur de fichiers ouvertsL’utilisateur souhaite sélectionner des fichiers ou dossiers fournis par votre application.
sélecteur de fichiers enregistrésL’utilisateur souhaite enregistrer un fichier et a sélectionné votre application.
lancementL’utilisateur a lancé votre application ou appuyé sur une vignette de contenu.
tâche d’impressionL’utilisateur souhaite que votre application gère les tâches d’impression.
protocoleL’application d’un utilisateur a lancé une URL dont le protocole est géré par votre application.
rechercheL’utilisateur souhaite effectuer une recherche avec votre application.
cible de partageL’utilisateur souhaite que votre application soit la cible d’une opération de partage.

 

Les applications conçues pour Windows 8.1 et versions ultérieures peuvent également être activées avec les types suivants.

Activation type Description
ajouter un rendez-vousL’utilisateur veut ajouter un rendez-vous à son calendrier. Aussi pris en charge sur Windows Phone.
supprimer un rendez-vousL’utilisateur veut supprimer un rendez-vous de son calendrier. Aussi pris en charge sur Windows Phone.
remplacer un rendez-vousL’utilisateur veut remplacer un rendez-vous de son calendrier. Aussi pris en charge sur Windows Phone.
afficher un délai d’exécutionL’utilisateur veut afficher un délai d’exécution spécifique sur son calendrier. Aussi pris en charge sur Windows Phone.
appel d’un contactL’utilisateur veut appeler un contact.
localiser un contact sur une carteL’utilisateur veut localiser un contact (sur une carte).
message à un contactL’utilisateur veut envoyer un message à un contact.
validation de contactL’utilisateur veut valider un contact.
conversation vidéo avec un contactL’utilisateur veut effectuer une conversation vidéo avec un contact.
appel à partir de l’écran de verrouillageL’utilisateur veut accepter un appel à partir de l’écran de verrouillage.
lancement restreintL’utilisateur a lancé votre application restreinte.

 

Les applications Windows Phone peuvent être activées avec ces types.

Activation type Description
VoiceCommand L’application a été activée à l’issue de l’utilisation d’un sélecteur.
PickerReturned L’application a été activée à l’issue de l’utilisation d’un sélecteur.
WalletAction L’application a été activée pour effectuer une opération Portefeuille.
PickFileContinuation L’application a été activée après la suspension de l’application pour une opération de sélection de fichier.
PickSaveFileContinuation L’application a été activée après la suspension de l’application pour une opération de sélection d’enregistrement de fichier.
PickFolderContinuation L’application a été activée après la suspension de l’application pour une opération de sélection de dossier.
WebAuthenticationBrokerContinuation L’application a été activée après la suspension de l’application pour une opération du service Broker d’authentification Web.

 

Votre application peut utiliser l’activation pour restaurer des données précédemment enregistrées au cas où le système d’exploitation mettrait fin à votre application et l’utilisateur la relancerait par la suite. Le système d’exploitation peut arrêter votre application une fois qu’elle a été suspendue pour différentes raisons. L’utilisateur peut fermer manuellement votre application ou se déconnecter, ou le système peut être sur le point de manquer de ressources. Si l’utilisateur lance votre application après que le système d’exploitation l’a arrêtée, il reçoit un événement activated et voit l’écran de démarrage de votre application jusqu’à ce que celle-ci soit activée. Vous pouvez utiliser cet événement pour déterminer si votre application doit restaurer les données qu’elle avait enregistrées lors de sa dernière suspension ou si vous devez charger les données par défaut de votre application. Les arguments de l’événement activated incluent une propriété PreviousExecutionState qui vous indique l’état dans lequel se trouvait votre application avant d’être activée. Cette propriété est l’une des valeurs de l’énumération ApplicationExecutionState. Le tableau ci-dessous récapitule les possibilités :

Raison de l’arrêtValeur de la propriété PreviousExecutionStateAction à entreprendre
Terminé par le système (par exemple, en raison de contraintes liées aux ressources)Terminated Restaurer les données de session
Fermée par l’utilisateurClosedByUser Démarrer avec les données par défaut
Arrêtée de manière inattendue, ou l’application n’a pas été exécutée depuis le démarrage de la session de l’utilisateur NotRunningDémarrer avec les données par défaut

 

PreviousExecutionState peut aussi présenter la valeur Running ou Suspended mais, dans ces cas, votre application n’a pas été auparavant arrêtée et vous n’avez donc pas à vous soucier de la restauration des données.

  • Applies to Windows

Remarque  

À noter que si vous ouvrez une session en utilisant le compte Administrateur de l’ordinateur, vous ne pouvez activer aucune application du Windows Store.

Pour plus d’informations, voir Extensions d’application.

Suspension d’une application

La suspension d’une application intervient lorsque l’utilisateur la quitte ou lorsque le périphérique entre dans un état de faible alimentation. La plupart des applications cessent de s’exécuter lorsque l’utilisateur les quitte.

Lorsque l’utilisateur met une application en arrière-plan, le système d’exploitation patiente quelques secondes, le temps de voir si l’utilisateur retourne immédiatement dans l’application. Si l’utilisateur n’y retourne pas, le système d’exploitation la suspend.

Si un gestionnaire d’événements pour l’événement Suspending | suspending a été inscrit par une application, il est appelé juste avant la suspension de l’application. Vous pouvez utiliser le gestionnaire d’événements pour enregistrer des données utilisateur et d’application pertinentes sur un périphérique de stockage persistant. Pour cela, nous vous recommandons d’utiliser les API de données d’application, car elles terminent l’opération avant que l’application n’entre dans l’état Suspended. Pour plus d’informations, voir Données d’application. Vous devez également libérer les ressources exclusives et les descripteurs de fichiers afin de permettre aux autres applications d’y accéder pendant que votre application ne les utilise pas.

En règle générale, votre application doit immédiatement enregistrer son état ainsi que libérer ses ressources exclusives et descripteurs de fichiers dans le gestionnaire d’événements lorsque l’événement de suspension est reçu. Ces opérations prennent généralement une seconde. Si une application ne réagit pas à l’événement de suspension dans un délai de 5 secondes sur Windows et dans un délai compris entre 1 et 10 secondes sur Windows Phone, le système d’exploitation considère qu’elle a cessé de répondre et l’arrête.

Le système d’exploitation essaie de garder un maximum d’applications suspendues en mémoire. Cela permet ainsi aux utilisateurs de basculer de façon rapide et fiable entre les applications suspendues. Toutefois, si les ressources pour conserver votre application en mémoire sont insuffisantes, le système d’exploitation peut arrêter votre application. Notez que les applications ne sont pas notifiées de leur arrêt. De ce fait, vous ne pouvez enregistrer les données de votre application qu’au cours de la suspension. Lorsqu’une application détermine qu’elle est activée après avoir été arrêtée, elle doit charger les données d’application enregistrées lors de la suspension pour retrouver l’état qui était le sien à ce moment-là.

Certaines applications doivent continuer de s’exécuter pour effectuer des tâches en arrière-plan. Votre application peut continuer de lire du contenu audio en arrière-plan ; pour plus d’informations, voir Démarrage rapide : ajout de son dans une application Windows Runtime. Les opérations de transfert en arrière-plan continuent même si votre application est suspendue, voire arrêtée ; pour plus d’informations, voir Démarrage rapide : téléchargement d’un fichier.

Pour obtenir des recommandations, voir Recommandations pour la suspension et la reprise d’une application.

Pour obtenir un exemple de code, voir :

Visibilité de l’application

Lorsque l’utilisateur passe de votre application à une autre, votre application n’est plus visible, mais demeure à l’état d’exécution jusqu’à ce que le système d’exploitation puisse la suspendre (pendant environ 10 secondes). Si l’utilisateur quitte votre application, mais l’active ou y revient avant qu’elle ne puisse être suspendue, l’application reste à l’état d’exécution.

Votre application ne reçoit pas d’événement d’activation quand la visibilité change, car elle est toujours en cours d’exécution. Le système d’exploitation quitte l’application et y revient simplement autant de fois que nécessaire. Si votre application doit faire quelque chose quand l’utilisateur la quitte et y revient, elle peut gérer l’événement VisibilityChanged | msvisibilitychange.

L’événement de visibilité n’est pas sérialisé avec les événements de reprise ou d’activation. Ne partez pas du principe que ces événements se produisent dans un ordre particulier.

Reprise d’une application

Une application suspendue est reprise lorsque l’utilisateur bascule vers elle ou que le périphérique quitte un état de faible alimentation.

Pour obtenir une énumération des états possibles pour votre application lors de sa reprise, voir ApplicationExecutionState. Lorsqu’une application quitte l’état Suspended, elle entre dans l’état Running et reprend là où elle s’est arrêtée. Aucune donnée d’application n’est perdue, car les données sont conservées en mémoire. Par conséquent, la plupart des applications n’ont aucune opération à effectuer lors de leur reprise. Toutefois, l’application peut avoir été suspendue pendant des heures, voire des jours. Dans ce cas, si votre application présente du contenu ou des connexions réseau caduques, il convient de les actualiser lors de la reprise. Si une application a inscrit un gestionnaire d’événements pour l’événement Resuming | resuming, ce gestionnaire d’événements est appelé lorsque l’application quitte l’état Suspended. Vous pouvez actualiser votre contenu à l’aide de ce gestionnaire d’événements.

Si une application suspendue est activée pour participer à un contrat ou une extension d’application, elle reçoit d’abord l’événement Resuming | resuming, puis l’événement Activated | activated.

Lorsqu’une application est suspendue, elle ne reçoit pas les événements réseau auxquels elle est inscrite. Ces événements ne sont pas mis en file d’attente ; ils sont simplement manqués. Par conséquent, votre application doit tester l’état du réseau lors de sa reprise.

Pour obtenir des recommandations, voir Recommandations pour la suspension et la reprise d’une application.

Pour obtenir un exemple de code, voir :

  • Applies to Windows Phone

Remarque  Sur Windows Phone, la méthode OnLaunched est appelée chaque fois que l’utilisateur lance l’application à partir de la vignette Démarrer ou de la liste des applications, même si l’application est actuellement suspendue en mémoire. Sur Windows, le fait de lancer une application suspendue à partir de la vignette Démarrer ou de la liste des applications n’appelle pas cette méthode.

Fermeture d’une application

Généralement, les utilisateurs n’ont pas besoin de fermer les applications et peuvent laisser le système d’exploitation les gérer. Toutefois, ils peuvent décider de fermer une application en effectuant un mouvement de fermeture ou en appuyant sur Alt+F4 (sur Windows) ou en utilisant le sélecteur de tâche (sur Windows Phone). Vous ne pouvez pas inclure d’interface utilisateur dans votre application pour permettre à l’utilisateur de la fermer, ou elle ne réussira pas le processus de certification du Windows Store.

Il n’existe aucun événement spécial pour indiquer que l’utilisateur a fermé une application.

Une fois qu’une application a été fermée par l’utilisateur, elle est suspendue et arrêtée, puis entre dans l’état NotRunning dans un délai de 10 secondes environ.

Dans Windows 8.1 et versions ultérieures, une fois qu’une application a été fermée par l’utilisateur, elle est uniquement supprimée de l’écran et de la liste de choix sans être arrêtée.

Remarque  Si votre application dépend du comportement de fermeture par l’utilisateur propre à Windows 8, vous pouvez activer ce comportement dans votre application quand vous la mettez à niveau vers Windows 8.1. Pour activer le comportement de fermeture par l’utilisateur propre à Windows 8, configurez votre application Windows 8.1 pour qu’elle s’arrête quand la dernière fenêtre est fermée à l’aide de la propriété Windows.UI.ViewManagement.ApplicationView.TerminateAppOnFinalViewClose.

Si un gestionnaire d’événements pour l’événement Suspending | suspending a été inscrit par une application, il est appelé lors de la suspension de l’application. Vous pouvez utiliser ce gestionnaire d’événements pour enregistrer des données utilisateur et d’application pertinentes sur un périphérique de stockage persistant.

Comportement fermé par l’utilisateur:  Nous vous recommandons de décider de la façon dont votre application doit se comporter lorsqu’elle est activée après avoir été fermée par l’utilisateur. Il peut ne pas vous importer que l’application soit arrêtée par le système d’exploitation ou par l’utilisateur. Si votre application doit se comporter différemment selon qu’elle est fermée par l’utilisateur ou par le système d’exploitation, vous pouvez utiliser le gestionnaire d’événements d’activation pour déterminer si l’application a été arrêtée par Windows ou par le système d’exploitation. Voir les descriptions des états ClosedByUser et Terminated dans la documentation relative à l’énumération ApplicationExecutionState.

Nous recommandons que les applications ne puissent se fermer par programme qu’en cas d’absolue nécessité. Par exemple, si une application détecte une fuite de mémoire, elle peut se fermer pour assurer la sécurité des données personnelles de l’utilisateur. Lorsque vous fermez une application par programme, le système d’exploitation considère qu’il s’agit d’un blocage d’application.

Blocage d’application

Les applications sont tenues de suivre la procédure en cas de panne du système, qui consiste à retourner simplement à l’écran d’accueil. La procédure en cas de panne du système étant conçue pour permettre aux utilisateurs de poursuivre leurs tâches aussi rapidement que possible, vous ne devez pas présenter de boîte de dialogue d’avertissement ni d’autre notification pour ne pas retarder l’utilisateur. La disparition de l’application doit indiquer clairement à l’utilisateur qu’un problème est survenu.

Si votre application se bloque, cesse de répondre ou génère une exception, Windows demande à l’utilisateur la permission d’envoyer un rapport de problèmes à Microsoft. Microsoft vous fournit un sous-ensemble des données d’erreur dans le rapport de problèmes pour que vous puissiez les utiliser afin d’améliorer votre application. Vous pouvez consulter ces données dans la page Qualité de votre application dans votre tableau de bord dans le Centre de développement.

Lorsque l’utilisateur active une application après une panne, son gestionnaire d’événements d’activation reçoit une valeur NotRunning d’énumération ApplicationExecutionState et doit simplement afficher son interface utilisateur et ses données d’origine.

Suppression d’une application

Lorsqu’un utilisateur supprime votre application, elle est supprimée avec toutes ses données locales. La suppression d’une application n’affecte pas les données de l’utilisateur, telles que les fichiers contenus dans Documents ou les bibliothèques d’images.

Interfaces de programmation du cycle de vie des applications

Rubriques associées

Recommandations pour la suspension et la reprise d’une application
Exemples
Exemple d’activation, d’interruption et de reprise d’une application à l’aide de WRL

 

 

Afficher:
© 2014 Microsoft