AIR桌面程序支持版本更新,可以用ApplicationUpdaterUI来达到更新程序的目的。但调用ApplicationUpdaterUI后,关闭程序有可能会出现当前进程无法注销掉,只能手动杀死当前AIR桌面程序的进程。在网上搜了搜相关资料,找到了个解决办法。
- <?xml version="1.0" encoding="utf-8"?>
- <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:s="library://ns.adobe.com/flex/spark"
- xmlns:mx="library://ns.adobe.com/flex/mx"
- closing="closingHandlerByWindow(event)"
- showStatusBar="false">
- <fx:Script>
- <!--[CDATA[
- /**
- * closingHandlerByWindow
- * 在关闭主程序前,处理ApplicationUpdaterUI无法正常关闭,进程关不掉问题。
- *
- * @param Event evt
- * @return void
- * **/
- protected function closingHandlerByWindow(event:Event):void
- {
- var len:int = nativeApplication.openedWindows.length;
- //获取其余窗体,除了主程序
- for (var i:int = len - 1; i > 0; i--) {
- var win:NativeWindow = nativeApplication.openedWindows[i] as NativeWindow;
- if (win && !win.closed) win.close();
- }//for end
- }
- ]]-->
- </fx:Script>
- <fx:Declarations>
- </fx:Declarations>
- <s:layout>
- <s:VerticalLayout />
- </s:layout>
- <s:Label text="Hello World"/>
- </s:WindowedApplication>