2009-02-26 8 views
3

I ont une application AIR avec le gestionnaire de sortie défini ci-dessous:Gestion des événements de sortie d'application dans une application AIR

NativeApplication.nativeApplication.addEventListener(Event.EXITING, applicationExitHandler); 

applicationExitHandler fait une demande asynchrone de déconnexion par l'intermédiaire d'un HttpService. Comme cela est asynchrone, il semble que la méthode exit de l'application retourne avant que la demande de déconnexion ne soit réellement effectuée.

Comment puis-je m'assurer que la requête se termine avant le retour de exit()?

Répondre

6

Remplacer le comportement par défaut. Annuler cet événement Appelez ensuite le service. Ajoutez un gestionnaire de requêtes/gestionnaire d'erreurs à votre service. À la fin, le résultat ou le gestionnaire d'erreurs est appelé. C'est à ce moment que vous pouvez quitter l'application en toute sécurité (bien sûr, si la connexion échoue, vous aurez peut-être besoin d'un traitement supplémentaire). De l'docs:

sortie Distribué lorsque la séquence de sortie de l'application est lancée.

L'événement sortant est distribué lorsque l'exit d'application est lancé par le système d'exploitation; par exemple, lorsqu'un utilisateur émet la séquence de touches Cmd-Q sur Mac OS X ou lorsque la propriété autoExit de l'objet NativeApplication est vraie et que la dernière fenêtre de l'application est fermée. L'annulation de cet événement empêche l'exécution de l'application.

Remarque: L'appel de la méthode NativeApplication exit() n'entraîne pas l'envoi d'un événement sortant. Pour avertir les composants d'une sortie imminente, envoyez l'événement sortant avant d'appeler exit() La constante Event.EXITING définit la valeur de la propriété type d'un objet événement sortant.

+0

Comment remplacer override()? –

+0

Ah, j'annule l'événement EXITING dans mon ExitHandler? –

+0

J'ai fourni un lien dans ma réponse. Regarde. – dirkgently

Questions connexes