目前,我对Flex应用程序的工作,我现在用了PureMVC多核变种。我的问题是在我的代理我正在远程调用,并附加了一些(result和fault)事件侦听器。所以在我的事件处理程序的代码,我应该删除听众明确作出RemoteObject类符合垃圾collecton?

   public function getTableGridData():void
   {
      var hostController:RemoteObject=this.hostController("ABC");
      hostController.addEventListener(ResultEvent.RESULT, handleResult);
      hostController.addEventListener(FaultEvent.FAULT, handleFault);
      hostController.getTableData();
   }

   private function handleResult(event:ResultEvent):void
   {
      ApplicationFacade.getInstance(key).sendNotification("abc", event.result);
   }

因此,这里hostController保持两个听众的强参考。所以做的ResultEvent后hostController是符合垃圾收集或我不得不提一下制作hostController符合垃圾collectioin听众弱引用?

有帮助吗?

解决方案

我想你应该明确地删除监听器。 这将至少使它更容易为大家阅读的代码。

我不知道,如果你保留任何其他引用到hostController(如你得到它的 hostController()的)。 如果你没有其他任何引用(例如,如果的 hostController()的是一个简单的创建,忘记厂),并使用这些听众弱引用,这甚至会之前意味着它是符合垃圾回收它完成的工作 - 据我了解

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top