> Tech > Tombstoning et état transitoire

Tombstoning et état transitoire

Tech - Par iTPro - Publié le 24 avril 2012
email

Le « tombstoning » est certes intéressant en théorie, mais présente un certain nombre de défis.

Tombstoning et état transitoire

Lorsqu’une application utilise ce mécanisme, les seules informations conservées par défaut sur son état sont la pile de retours en arrière, autrement dit la page actuelle sur laquelle se trouve l’utilisateur et celles qu’il a traversées pour en arriver là. En revanche, il n’y a pas persistance des données que l’utilisateur peut avoir saisies ou modifiées sur toutes ces pages.

Prenons l’exemple d’une page avec un certain nombre de contrôles TextBox et un contrôle ListBox plein d’éléments. Lorsque l’utilisateur effleure le bouton Start, ouvre une autre application, puis revient à un moment donné à l’application d’origine, il s’attend à ce que le contenu des contrôles TextBox soit identique et à ce que la position de défilement et l’élément sélectionné dans ListBox soient préservés. C’est ce que l’on appelle un état transitoire, qui doit être conservé (persistance) une fois l’application désactivée et être restauré lorsque l’application est activée. D’autres informations, par exemple un document enregistré par un utilisateur, sont considérées comme des données ou un état persistants, car elles doivent survivre à plusieurs sessions d’application.

À partir du diagramme de cycle de vie d’application de la figure 1, vous savez qu’il existe quatre événements sur l’objet Application qui correspondent aux transitions d’état au sein de l’application :

   private void Application_Launching(object sender, LaunchingEventArgs e) { }
   private void Application_Activated(object sender, ActivatedEventArgs e) { }
   private void Application_Deactivated(object sender, DeactivatedEventArgs e) { }
   private void Application_Closing(object sender, ClosingEventArgs e) { }

Parmi ceux-ci, les événements Deactivated et Activated sont importants pour gérer le « tombstoning ». Lorsqu’une application passe à l’arrière-plan (l’utilisateur effleure le bouton Start), votre dernière opportunité pour faire persister n’importe quel état transitoire réside dans l’événement Deactivated. Par exemple, le code du listing 1 permettra la persistance d’une propriété ActiveSessionDuration sur l’objet Application.

Dans ce cas, la propriété ActiveSessionDuration conserve la durée d’utilisation réelle de l’application, au lieu de la durée écoulée entre le démarrage de l’application et sa fermeture. Bien évidemment, vous verrez la sortie uniquement si l’application est fermée via le bouton Back. Vous ne la verrez pas si l’application fait l’objet d’un « tombstoning » et n’est jamais réactivée.

Téléchargez gratuitement cette ressource

Guide de Services Cloud Managés

Guide de Services Cloud Managés

Accélérer votre transformation digitale, protéger et sécuriser vos environnements Cloud avec les offres de support, d'accompagnement et de services managés. Découvrez le TOP 3 des Services Managés pour accompagner la transformation de vos environnements Cloud, gagner en agilité et en sécurité dans un monde d'incertitudes.

Tech - Par iTPro - Publié le 24 avril 2012