質問

現在、私は私がPureMVCののマルチコアバリアントを使用していますフレックスアプリケーションに取り組んでいます。私の質問は、私は、リモート呼び出しを行うと、いくつかの(RESULTとFAULT)イベントリスナーを添付しています、私の代理です。だから私はゴミcollectonためRemoteObjectクラスの資格を作るために、明示的にリスナーを削除する必要があり、私のイベントハンドラコードで?

   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);
   }
だからここにホストコントローラは、両方のリスナーの強い参照を保持しています。だから、resultEventはありません後ホストコントローラは、ガベージコレクションの対象であるか、私はゴミcollectioinのためのホストコントローラの資格を作成するためのリスナーの弱い参照を言及する必要がありますか?

役に立ちましたか?

解決

私はあなたが明示的にリスナーを削除するべきだと思います。 それは、少なくとも誰もがコードを読み取ることが容易になるだろう。

あなたはそのホストコントローラへの他の参照を保持している場合(あなたがのホストコントローラ()のからそれを得たとして)

私はよく分かりません。 あなたが他の参照を持っている(例えば、のホストコントローラ()の場合は簡単作成 - 忘れ工場である)およびそれらのリスナーに弱参照を使用しない場合、それは前にも、ガベージコレクションのためのそれの資格を意味します限り、私はそれを理解するように、

- それはそれの仕事を終えます。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top