打开包含tableview的重量级窗口时出现以下内存错误。
开启/关闭的前10-15次是可以的,但之后我继续得到以下内容:
I/dalvikvm-heap(22638): Forcing collection of SoftReferences for 5030656-byte allocation
D/dalvikvm(22638): GC_BEFORE_OOM freed <1K, 10% free 116152K/128624K, paused 91ms, total 91ms
E/dalvikvm-heap(22638): Out of memory on a 5030656-byte allocation.
每当我关闭窗口时,我都会使用以下代码:
$.Storyboard.close();
$.destroy();
这是我做错了还是钛有问题?
我正在使用Alloy
运行Titanium 3.1.3GA答案 0 :(得分:0)
请尝试将控制器中的代码更改为:
$.Storyboard.close();
$.Storyboard.addEventListener('close', function() {
$.destroy();
});
destroy()可能在事件监听器之外被调用太晚。
答案 1 :(得分:0)
如果您正在使用模型视图绑定,则应该使用destroy
函数(从您的代码看起来,您似乎不是这样)。
destroy
删除附加到控制器的事件侦听器,它们引用了全局模型和集合(防止内存泄漏),当你关闭窗口时,你已经销毁了任何这样的引用(但主要是因为你没有使用模型-view binding)。
所以根本不要打电话给$.destroy
。