Вопрос

В настоящее время я работаю над приложением Flex, где я использую многокурсную вариант puremvc. Мой вопрос в моем прокси, я делаю удаленный звонок и прикрепив некоторые (результат и неисправности) слушателя события. Таким образом, в моем коде обработчика событий я должен явно удалить слушателей для изготовления класса RemoveObject, имеющих право на мусорное ведение?

   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 проводит сильную ссылку как слушателей. Таким образом, после результирования HostController имеет право HostController для сбора мусора или я должен упомянуть слабую ссылку для слушателей для создания HostController, имеющих право на Collectionion?

Это было полезно?

Решение

Я думаю, что вы должны явно удалить слушателей. По крайней мере, упростит бы каждому читать код.

Я не уверен, что вы сохраните любые другие ссылки на этот хостконтроллер (как вы его получили HostController ()). Если у вас нет других ссылок (например, если HostController () Это простой создатель-забывающая фабрика) и использует слабые ссылки на те слушателя, что означало бы, что он имеет право на сбор мусора даже до того, как он закончит свою работу - насколько я понимаю.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top