Accueil > Gérer le cycle de vie de votre application Windows 8
Jonathan Pamphile
21 novembre 2013

Gérer le cycle de vie de votre application Windows 8

Comment gérer le cyle de vie d'une application Windows 8 ?

Le mode de cycle de vie des applications Windows 8 permet à l’utilisateur de lancer plusieurs applications et de passer de l’une à l’autre sans avoir à se soucier des performances du système d’exploitation ou de la consommation de la batterie. Cela est dû au fait que le système suspend ou arrête seul les applications qui s’exécutent en arrière plan. Ainsi, les applications s’exécutant au premier plan sont assurées de bénéficier d’un maximum de ressources machine.

Quand vous développez votre application, vous pouvez concevoir une meilleure expérience utilisateur en veillant à ce que vos applications puissent se mettre en pause, s’arrêter et se relancer tout en donnant l’impression à l’utilisateur qu’elles n’ont jamais cessé de fonctionner.

Les états de votre application Windows 8

Le schéma ci-après présente les différents états de votre application ainsi que les transitions entre eux :

A tout moment, votre application se retrouvera dans un de ces 3 états :

  • Arrêt (not running),
  • En cours d’exécution (running),
  • En pause (suspended).

A chaque changement d’état, des évènements sont levés pour vous permettre d’effectuer les actions nécessaires à l’enregistrement ou restauration de l’état de votre application selon que l’utilisateur lance l’application, bascule sur une autre ou la quitte.

Evènement Etat précédent Etat suivant
activated hors fonctionnement en cours d’exécution
suspending en cours d’exécution interrompue
resuming interrompue en cours d’exécution

 

L’interruption

L’interruption de votre application intervient lorsque l’utilisateur change d’application ou lorsque Windows entre dans un état d’économie d’énergie (ex: mise en veille). Pendant que votre application est suspendue, elle est encore en mémoire permettant à l’utilisateur de basculer rapidement d’une application suspendue à une autre et ainsi reprendre leur exécution.

A tout moment, Windows peut arrêter votre application si elle est interrompue pour libérer de la mémoire pour d’autres applications ou d’économiser de l’énergie. Lorsque votre application est arrêtée, elle cesse de s’exécuter et elle est déchargée de la mémoire.

Attention ! Il faut noter que si Windows notifie votre application de sa suspension, celle-ci ne reçoit pas d’autre notification lorsqu’elle est arrêtée. Cela signifie que votre application doit gérer l’événement de mise en suspens et s’en servir pour enregistrer son état.

Quand l’utilisateur arrête votre application (Alt+F4 ou geste de fermeture), celle-ci est suspendue pendant 10 secondes, puis arrêtée.

Pour créer une meilleure expérience utilisateur, faites en sorte que votre application ne semble jamais avoir cessé de fonctionner. Il convient d’enregistrer l’état de votre application au moment où elle est suspendue, au cas où Windows l’arrêterait, pour permettre la restauration ultérieure de son état.

 

L’activation et la reprise

Comme vu précédemment, Windows peut fermer une application interrompue (besoin de ressources, économie de batterie, etc.).

Au lancement de l’application par l’utilisateur, l’évènement Activated est levé, avec une propriété PreviousExecutionState permettant de connaître l’état précédent son exécution. Cette propriété aura une des valeurs de l’énumération Windows.ApplicationModel.Activation.ApplicationExecutionState.

Le tableau suivant présente les actions à effectuer si vous souhaitez offrir à vos utilisateurs l’impression que votre application n’a jamais cessé de fonctionner.

Raison de l’arrêt Valeur de la propriété PreviousExecutionState Action à réaliser
Arrêté par le système d’exploitation Terminated Restaurer les données de session
Arrêté par l’utilisateur ClosedByUser Démarrer avec les valeurs par défaut
Arrêt inattendu ou application non lancée depuis le démarrage de la session NotRunning Démarrer avec les valeurs par défaut

Dans le cas où l’application était en cours d’exécution ou suspendue, la propriété PreviousExecutionState aura respectivement l’état  Running ou Suspended. Dans ces deux cas, aucune action n’est requise pour restaurer l’état de l’application.

Nos autres articles
Commentaires
Laisser un commentaire

Restez au courant des dernières actualités !
Le meilleur de l’actualité sur le Cloud, le DevOps, l’IT directement dans votre boîte mail.