2009-02-26 3 views
3

Ich habe eine AIR-Anwendung mit den folgenden EXIT-Handler definiert:Bedienung Anwendung Exit-Ereignisse in einer AIR-Anwendung

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

applicationExitHandler macht eine asynchrone Abmeldeanforderung über einen Httpservice. Da dies asynchron ist, sieht es so aus, als würde die exit() - Methode der Anwendung zurückkehren, bevor die Abmeldeanforderung tatsächlich ausgeführt wird.

Wie kann ich sicherstellen, dass die Anfrage abgeschlossen wird, bevor exit() zurückkehrt?

Antwort

6

Überschreiben Sie das Standardverhalten. Brechen Sie dieses Ereignis ab. Rufen Sie den Dienst dann an. Fügen Sie Ihrem Dienst einen Anforderungshandler/Fehlerbehandler hinzu. Nach Abschluss wird entweder das Ergebnis oder der Fehlerbehandler aufgerufen. Dies ist, wenn Sie die App sicher verlassen können (natürlich, wenn das Abmelden fehlschlägt, benötigen Sie möglicherweise zusätzliche Verarbeitung). Von der docs:

Verlassen ausgelöst, wenn die Anwendung Exit-Sequenz gestartet wird.

Das ausgehende Ereignis wird ausgelöst, wenn das Anwendungsexit vom Betriebssystem initiiert wird. B. wenn ein Benutzer die Cmd-Q-Tastenfolge unter Mac OS X ausgibt oder wenn die Eigenschaft autoExit des NativeApplication-Objekts true ist und das letzte Anwendungsfenster geschlossen wird. Durch das Abbrechen dieses Ereignisses wird verhindert, dass die Anwendung beendet wird.

Hinweis: Beim Aufrufen der exit() - Methode von NativeApplication wird kein austretendes Ereignis ausgelöst. Um Komponenten eines bevorstehenden Exits zu warnen, senden Sie das exiting-Ereignis vor dem Aufruf von exit(). Die Event.EXITING-Konstante definiert den Wert der type -Eigenschaft eines ausgehenden Ereignisobjekts.

+0

Wie überschreibe ich exit()? –

+0

Ah, ich storniere das EXITING-Ereignis in meinem ExitHandler? –

+0

Ich habe einen Link in meiner Antwort angegeben. Guck mal. – dirkgently

Verwandte Themen