2011-08-11 2 views
0

다른 윈도우 응용 프로그램에서 윈도우 하위 응용 프로그램을로드하려고합니다.로드 된 응용 프로그램을 다른 사용자 응용 프로그램으로 대체해야합니다.Adobe AIR에서 SWFLoader를 사용할 때 메모리 누수가 발생했습니다.

주 윈도우 응용 프로그램의 swfLoader에서 문서화 된 방법 unloadAndStop()을 시도했지만 메모리 프로파일 링 중에 가비지 수집을 명시 적으로 실행 한 후에도 해당 응용 프로그램의 인스턴스가 메모리에서 유지되고 있음을 알 수있었습니다.

여기서 windowed 응용 프로그램을 모듈로 만든 다음 Moduleloader를 사용하여로드하려고하면 부드럽게 처리되고 언로드 된 모듈은 메모리에서 제거됩니다.

어느 누구도 전에도 동일한 문제에 직면 했습니까?

+1

왜 당신이 이제까지 응용 프로그램 내에서 응용 프로그램을로드 것인가? 점은 무엇인가? 대신 모듈로드 ... –

+0

SDK 버전은 무엇입니까? SDK에 메모리 누수가있을 수 있습니다 (bugs.adobe.com 확인). –

+0

답변 해 주셔서 감사합니다. @J_A_X : 웹용으로 독립적으로 작동하는 응용 프로그램 세트를 만들고 싶습니다. AIR의 경우에는 분명히 함께 패키지로 제공됩니다. 더 나은 유지 관리를 위해 전체 코드를 재사용하고 싶습니다. – Harshal

답변

0

먼저 응용 프로그램 내에서 응용 프로그램을로드해야합니다. 모든 종류의 미친 일이 일어날 수 있습니다. 나는 과거에 당신의 상황에 직면했다. 내가 한 것은 응용 프로그램 또는 모듈 작업을 위해 실제 UI/제품을 분리하는 것입니다. 예를 들면 :

<?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 일 :

관련 문제