Gérer le cycle de vie de votre 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é PreviousExecutionSta
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é PreviousExecutionSta