View.Activate/Deactivate 事件监听器注册了多次

View.Activate/Deactivate event listener registered multiple times

我有一个简单的基于 Apache Flex 视图的应用程序,它在 Android 上运行如下:

<f:MyView xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/sparks"
activate="activateHandler(event)"
deactivate="deactivateHandler(event)"/>

我希望 activateHandler() 在视图被激活时只执行一次,但是在我弹出然后将相同的视图推回后 activateHandler() 执行的次数增加了我执行的次数弹出和推送操作。为什么会发生这种情况以及如何强制它按预期运行(即仅一次)?

我不确定在处理程序 activateHandlerdeactivateHandler 中究竟写了什么代码,但在 Flex 中,如果您不再需要事件侦听器,这是删除事件侦听器的标准做法。我假设无论何时弹出和推送相同的视图,它都会添加和删除侦听器。如果您分享处理程序代码,我可以为您提供更多帮助。

activate 更改为 creationComplete

扩展@JileniBouguima 的回答,将 activate 更改为 creationComplete 将解决此问题,因为这些事件是如何工作的。您对 activateHandler() 只执行一次的期望有点不对;根据 Activate event documentationactivate 火灾 每次您的应用程序获得操作系统焦点并激活。

相比之下,creationComplete 每个对象触发一次,一旦 component is created.