Build 2015 – Windows App Lifecycle from activation/suspension, background and multitasking

Session intéressante sur le cycle de vie des applications et les tâches de fond dans Windows 10. Pas besoin de connaitre déjà ces mécanismes pour voir cette session puisque le speaker explique ces éléments « from scratch ».

Le cycle de vie reprend celui de Windows 8 avec 3 états : Not running / Running / suspended

Dans windows 10, une application tournant en mode desktop est suspendue quand on la passe en « minimize »

La grosse nouveauté concernant le cycle de vie dans Windows 10 est le concept de « Extended Execution ». Une application peut demander un sursit pour by-passer la suspension (par défaut l’application a quelques secondes et elle est tuée si la suspension prend trop de temps). L’objectif est de permettre des traitements plus long à la suspension (enregistrement des données), ou de continuer l’execution (application de navigation GPS par exemple). Ce sursit peut être révoquée par le système en cours de route si il est nécessaire de libérer des ressources, un évènement est alors déclenché pour notifier l’application qu’elle va être quand même suspendue. Côté code, cela passe par la création d’un objet de session qu’on référence au niveau du système, et qui va porter la callback de révocation.

Pour les traitements en tâche de fond, le modèle est également celui de WinRT, avec des évènements déclencheurs (triggers) et des conditions. Il existe cependant plein de nouveaux types de triggers (ajout d’un appointment, d’un contact, device bluetooth demandant une connexion, capteurs, …). Une différence cependant est que les applications n’ont plus besoin d’être sur le lock screen pour certains déclencheurs comme le TimeTrigger (bonne nouvelle car c’est galère).

Parmis les choses intéressantes, de nouveaux triggers comme le ApplicationTrigger, ou des anciens comme le MaintenanceTrigger tournent maintenant en mode opportuniste, sans quota de ressources. Cependant, les tâches de fond de ce type ne fonctionnent que si les ressources sont disponibles. Autre nouveauté intéressante, le ApplicationTrigger, qui permet (enfin) de déclencher une tâche de fond depuis l’application. Très interessant dans les applis offline pour déclencher une première synchro, ou un traitement long.

On peut maintenant aussi avoir une tache de fond qui s’execute dans le même process que l’application.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s