AIR 3.1.0.4880 InvokeEvent缺陷

时间:2012-03-15 18:51:00

标签: android mobile air

最近升级到AIR 3.1 SDK并且在移动设备上遇到了关于InvokeEvent的show停止问题。每次更改设备的方向时,应用程序都会调度新的InvokeEvent。它并没有清除“queuedEvents”数组。最糟糕的是,每次发送的新事件都是收到的最后一个事件的克隆。对于我们的应用程序,这将是告诉应用程序加载某些数据的参数。因此,每次更改方向时,应用程序都会重新触发该加载序列,从而导致许多不良行为。

测试代码非常简单:

protected function preinitializeHandler(event:FlexEvent):void
{
    NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, onInvoke);
}

protected function onInvoke(event:InvokeEvent):void
{
    trace(event.toString());
}

现在,每次更改方向时,您都会看到trace语句,并且event.target.queuedEvents集合继续增长,同时从不清除任何先前捕获的事件。

回滚到AIR 3.0可修复此问题。我已经能够在两个单独的项目中证明这一点。

我很想听到修复或解决方法,所以我们可以使用3.1发布,但不管怎样,我想我会让其他人知道这个问题,因为我无法通过它找到任何关于它的信息。我的搜索。

有关硬件的其他详细信息:这不会出现在模拟器或我的LG Slate中,但每次在我们的Xooms和三星Galaxy Tab上都会发生这种情况。它似乎不是iOS的问题。

更新:刚刚更新到3.2版本候选版本(3.2.0.2060),问题仍然存在。我们的软件在可预见的未来无法更新3.0,这意味着我们无法升级到Flex 4.6 SDK,并且不会删除我们应用程序的重要功能。这并没有激发我们对公司AIR未来的启发。

我们可以使用一些解决方案和解决方法来修复我们的特定功能,但是仍然存在对永远不会清除的不断膨胀的调用队列的影响的担忧。与扩展使用该应用程序相比,这可能会产生其他问题。

更新2:我在Adobe论坛帖子中添加了更多细节。 http://forums.adobe.com/message/4278518

Eric Jensen

0 个答案:

没有答案