Windows Phone 7 : cycle de de vie des applications, applications résidentes
Depuis quelques jours on entend tout et n’importe quoi sur le support des applications résidentes sur Windows Phone 7.
Par “application résidente”, j’entend application qui reste en fonctionnement (et donc en mémoire) même si elle n’est plus visible (l’utilisateur a basculé sur une autre application, répondu a un appel téléphonique, …). On peut parler aussi de services (au sein Windows) ou d’applications résidentes, …
Il faut distinguer les applications systêmes qui sont par dénifition toujours en éxécution même si elles ne sont pas visibles (application de gestion des appels téléphoniques, …).
Pour les autres applications managées (Silverlight ou XNA) : le cycle de vie est représenté par les états suivants :
Starting –> Running –> Suspending —> Resuming –> Running –> Terminating
Starting = l’application en en train de démarrer (lancer par l’utilisateur)
Running = l’application est en fonctionnement ET visibile (l’utilisateur peut interagir avec)
Suspending = L’utilisateur ou le système vient de basculer sur une autre application , l’application n’est plus visible
Resuming = l’application vient de repasser au premier plan : l’utilisateur peut de nouveau interagir avec.
Terminating = l’application est en train de s’arréter.
L’état important est “Suspending”. Cet état indique que l’application n’est plus au premier plan ET QUE LE PROCESS PEUT POTENTIELLEMENT ETRE TUE !!! En effet, c’est le système d’exploitation qui déterminera en fonction des besoins en ressource (mémoire, …) si l’application suspendue peut rester en mémoire ou si les ressources occupées doivent être libéré. Dans le cas où le système a besoin de ressources, une application suspendue peut être donc être “tuée”.
Lorsque l’utilisateur reviendra sur son application, si le process a été arrété, l’application sera relancée automatiquement par le système de manière transparente. Il convient que l’application prenne en compte la sauvegarde de son état lors du passage en état suspendu pour permettre la restauration ultérieure de l’état applicatif.
La version actuellement disponible de Windows Phone ne fournit pas la possibilité de créer des applications résidentes (c’est a dire des applications maintenues en mémoire qu’elles soient visible ou non). Cette possibilité est en cours d’étude pour une future build/version.