Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

24déc/080

Flex / Air – Fermer toutes les fenêtres de votre application Air

Grâce à Adobe Air, vous pouvez ouvrir de nouvelles fenêtres, qui seront le plus souvent affichées à l'utilisateur. Vous pouvez aussi créer de nouvelles <mx:Window> en fond sans qu'elles ne soit affichée (j'ai utilisé cette technique pour une identification automatique HTML par redirection 302 que l'utilisateur n'avait pas besoin de voir). Vous avez peut-être remarqué que si vous n'avez pas fermé votre application Air, Flex Builder ne peut pas en lancer une autre, et donc, si vous avez encore une fenêtre ouverte mais non affichée en background, votre seule solution sera de "killer" à la main le processus adl.exe (Adobe AIR Debug Launcher) par le gestionnaire des tâches. Cela signifie aussi que votre application serait toujours lancée (dans une phase de production) et continuerai à utiliser de la mémoire vive.

Pour fermer toutes les fenêtres d'une application Air, vous pouvez utiliser directement la commande:

NativeApplication.nativeApplication.exit();

Cette méthode va bien fermer toutes les fenêtres. En revanche, si vous avez mis un handler sur l'évènement Event.CLOSING (fermeture de la fenêtre par la petite croix rouge), il ne sera pas exécuté. Cela peut devenir gênant si vous vouliez dans une utilisation normale, sauvegarder des données dans des Shared Objects avant la fermeture ou bien demander une confirmation comme quoi l'utilisateur veut bien fermer cette fenêtre.