Cara, o removePopup por si só não vai liberar a memória realmente. Pois ele
é simplesmente um container para o seu TitleWindow que não é removido da
memória, pois você poderia decidir utilizá-lo novamente. O ideal é que você
mantenha uma referência para o seu TitleWindow e após o removePopup vc
também limpa o TitleWindow, retirando seus listeners (se houver) e depois
seta sua referência como null. Tipo isso:
private var winds:ArrayCollection = new ArrayCollection();
protected function buttonClick(event:MouseEvent):void
{
var w:IFlexDisplayObject = PopUpManager.createPopUp(this, Wind);
winds.addItem(w);
PopUpManager.centerPopUp(w);
(w as Wind).addEventListener(CloseEvent.CLOSE, closeWind);
}
private function closeWind(e:CloseEvent):void
{
var w:Wind = winds.removeItemAt(winds.getItemIndex(e.target)) as Wind;
w.removeEventListener(CloseEvent.CLOSE, closeWind);
w = null;
System.gc();
}
Veja se isso resolve seu problema.
Abraço,
Em 14 de janeiro de 2011 16:39, Ciro Macedo <[email protected]> escreveu:
> Galera boa tarde, to trabalhando em um aplicativo AIR cuja arquitetura é
> basicamente baseada em titlewindow no estilo PopuUp, após alguns testes
> recebi uma reclamação acerca do consumo excessivo de memória por parte do
> aplicativo. Após um período de utilização, o aplicativo vai ficando lento,
> lento, lento até ser encerrado e aberto novamente. Usando o "profile" eu
> acabei encontrando a seguinte situação:
> - basicamente eu uso *PopUpManager.createPopUp* para criar as respectivas
> janela e *PopUpManager.removePopUp* , o que "teoricamente" deveria
> acontecer é que a cada *createPopUp* executado uma oscilação no consumo de
> memória (aumento) deveria ser notada, e a cada *removePopUp* uma outra
> oscilação (redução) de memória deveria ser notada pelo menos após algum
> tempo. Pois bem, a segunda parte não acontece, resumindo, fazendo um *
> createPopUp* o consumo aumenta e fazendo *removePopUp* nada acontece.
> É como se a instancia permanecesse lá em algum lugar e o GC do flex não
> conseguisse alcançar a referida instancia que foi removida.
>
> Imaginei ser algum problema com minha arquitetura e criei um projeto novo
> pra teste e o problema continua, o consumo de memória vai aumentando a cada
> chamada a *createPopUp* .
>
> Alguém já passou por este problema ? Alguma idéia de como proceder ?
>
> desde já agradeço!
>
>
> --
> ........................
> Att
> Ciro Macedo
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
--
Renato Lima
Analista de sistemas - RIA Especialist
Twitter: @renattolima
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev