项目用了 MDIWindow
其中一个MDIWindow打开的时候会创建一个timer 定时去请求数据
问题是:当我把这个window关掉的时候 这个timer 还是会一直执行,而且再开一个这个window又会再新增一个timer 如此下去 会有很多timer
我还以为window关闭的时候会自动销毁,但是貌似网上说FLEX的GC有很多bug 而且很多对象不会被及时的GC
首先想到的是在mdiwindow关闭的时候添加监听移除timer的事件
win.addEventListener(MDIWindowEvent.CLOSE,function(e:Event):void{tm.timeEnd();});
创建单例的方式也不行 因为关掉之后至少还有一个timer在运行..
private static var _instance:AppContext;
public static function getInstance():AppContext {
if(_instance == null) {
_instance = new AppContext();
}
return _instance;
}
最后决定 单例+mdiwindow关闭的时候添加监听移除timer的事件