【问题标题】:Method for doing stuff before closing an aplication?在关闭应用程序之前做事的方法?
【发布时间】:2013-02-28 19:05:30
【问题描述】:

有什么方法可以在应用程序关闭之前执行某些操作吗?
例如,有人关闭了应用程序,但在它发生之前我必须向服务器发送一些数据......

【问题讨论】:

  • 您说的是基于浏览器的应用程序吗?还是 Adob​​e AIR 应用程序?还是移动应用程序?
  • 我看不出它应该被否决的任何理由,他在问一个合法的问题——也许像我一样——他甚至没有意识到这必须是特定于平台的。或者更好的是,是否有一种我们都习惯于在 Flex/AIR 中执行此操作的不可知论方式。
  • 它是一个基于浏览器的应用程序...

标签: actionscript-3 apache-flex actionscript flex4


【解决方案1】:

请说明是哪个平台!!!

对于浏览器,您必须使用 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();
    }
}

【讨论】:

  • 我正要输入这样的答案,但还包括 Web 应用程序的解决方案:使用浏览器的 onbeforeunload 事件。 OP可以为此搜索,它有据可查。它有一些缺点(也有据可查),但它是浏览器中的唯一选择。 NativeApplication 还调度 Event.SUSPEND,关于移动 AIR 应用程序的 SUSPEND 和 DEACTIVATE 之间的区别有什么线索吗?
  • 不确定 atm,id 也必须查一下 ;) 但我认为那只是 IOS
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-27
  • 1970-01-01
  • 2011-04-20
相关资源
最近更新 更多