2013-02-28 66 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

相关问题