Утечка памяти при использовании SWFLoader в Adobe AIR - PullRequest
0 голосов
/ 11 августа 2011

Я пытаюсь загрузить оконное вложенное приложение в другое оконное приложение. Требуется заменить одно загруженное приложение другим на действие пользователя.

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

Где, как будто я делаю это оконное приложение как модули, а затем пытаюсь загрузить их с помощью загрузчика модулей, все работает гладко, а выгруженные модули удаляются из памяти.

Любой, кто сталкивался ста же проблема раньше?

Ответы [ 2 ]

0 голосов
/ 12 августа 2011
0 голосов
/ 12 августа 2011

Во-первых, вы должны загрузить приложение в приложении. Все виды сумасшедших вещей может произойти. Я сталкивался с вашей ситуацией в прошлом. То, что я сделал, это выделил мой фактический пользовательский интерфейс / продукт для любой задачи приложения или модуля. Например:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx">
   <local:YourMainUI width="100%" height="100%" />
</s:Application>

или

<?xml version="1.0" encoding="utf-8"?>
<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx">
   <local:YourMainUI width="100%" height="100%" />
</s:Module>

Вы видите, куда я иду с этим? Теперь у вас есть повторно используемый «главный» компонент для вашего продукта, который можно использовать в любом контексте, даже WindowedApplication one:)

...