2013-02-28 62 views
2

在應用程序關閉之前有什麼辦法執行某些操作嗎?
例如,有人關閉應用程序,但在它發生之前,我不得不發送一些數據到服務器...關閉應用程序之前做東西的方法?

+2

你說的是基於瀏覽器的應用程序嗎?還是Adobe AIR應用程序?或移動應用程序? – JeffryHouser 2013-02-28 19:26:02

+0

我看不出有什麼理由拒絕投票,他提出了一個合法的問題 - 也許就像我一樣 - 他甚至沒有意識到這必須是平臺特定的。或者更好的是,有沒有這樣做的不可知論的方式,我們都習慣在Flex/AIR中做。 – 2013-03-01 03:47:57

+0

它是一個基於瀏覽器的應用程序... – 2013-03-05 21:07:06

回答

2

請澄清哪個plattform!

對於瀏覽器,您將不得不使用JavaScript onbeforeunload事件和Flash externalInterface。 Here is a how to Link!

對於android它看起來像這樣!

if(Capabilities.cpuArchitecture=="ARM") // check if Android 
{ 
    NativeApplication.nativeApplication.addEventListener(Event.ACTIVATE, handleActivate, false, 0, true); 
    NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE, handleDeactivate, false, 0, true); 
    NativeApplication.nativeApplication.addEventListener(KeyboardEvent.KEY_DOWN, handleKeys, false, 0, true); 
} 

private function handleActivate(event:Event):void 
{ 
    // load your stuff again or whatever 
    NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE; 
} 

private function handleDeactivate(event:Event):void 
{ 
    // Save your Stuff and do whatever!!! 
    NativeApplication.nativeApplication.exit(); 
} 

private function handleKeys(event:KeyboardEvent):void 
{ 
    if(event.keyCode == Keyboard.BACK){ 
     // Save your Stuff and do whatever!!! 
     NativeApplication.nativeApplication.exit(); 
    } 
} 
+1

我只是想輸入這樣的答案,但也包括一個Web應用程序的解決方案:使用瀏覽器的'onbeforeunload'事件。該OP可以谷歌,這是有據可查的。它有一些缺點(也有很好的文檔),但它是瀏覽器中唯一的選擇。 NativeApplication還會調度Event.SUSPEND,瞭解有關移動AIR應用程序在SUSPEND和DEACTIVATE之間有什麼區別的線索? – 2013-02-28 19:19:51

+0

不確定atm,id也必須查看它;)但我認爲這只是IOS – M4tchB0X3r 2013-02-28 19:38:36

+0

我需要爲web應用程序的解決方案,感謝您的答案! – 2013-03-05 21:08:04

相關問題