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()
执行的次数增加了我执行的次数弹出和推送操作。为什么会发生这种情况以及如何强制它按预期运行(即仅一次)?
我不确定在处理程序 activateHandler
和 deactivateHandler
中究竟写了什么代码,但在 Flex 中,如果您不再需要事件侦听器,这是删除事件侦听器的标准做法。我假设无论何时弹出和推送相同的视图,它都会添加和删除侦听器。如果您分享处理程序代码,我可以为您提供更多帮助。
将 activate
更改为 creationComplete
。
扩展@JileniBouguima 的回答,将 activate
更改为 creationComplete
将解决此问题,因为这些事件是如何工作的。您对 activateHandler()
只执行一次的期望有点不对;根据 Activate event documentation、activate
火灾
每次您的应用程序获得操作系统焦点并激活。
相比之下,creationComplete
每个对象触发一次,一旦 component is created.
我有一个简单的基于 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()
执行的次数增加了我执行的次数弹出和推送操作。为什么会发生这种情况以及如何强制它按预期运行(即仅一次)?
我不确定在处理程序 activateHandler
和 deactivateHandler
中究竟写了什么代码,但在 Flex 中,如果您不再需要事件侦听器,这是删除事件侦听器的标准做法。我假设无论何时弹出和推送相同的视图,它都会添加和删除侦听器。如果您分享处理程序代码,我可以为您提供更多帮助。
将 activate
更改为 creationComplete
。
扩展@JileniBouguima 的回答,将 activate
更改为 creationComplete
将解决此问题,因为这些事件是如何工作的。您对 activateHandler()
只执行一次的期望有点不对;根据 Activate event documentation、activate
火灾
每次您的应用程序获得操作系统焦点并激活。
相比之下,creationComplete
每个对象触发一次,一旦 component is created.