1

打开包含表格视图的重量级窗口时出现以下内存错误。

前 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();

这是我做错了什么还是钛有问题?

我正在使用合金运行 Titanium 3.1.3GA

4

2 回答 2

0

请尝试将控制器中的代码更改为:

$.Storyboard.close();

$.Storyboard.addEventListener('close', function() {
    $.destroy();
});

destroy() 可能在事件侦听器之外被调用得太晚。

于 2013-10-06T09:07:26.210 回答
0

如果您正在使用模型视图绑定,您应该只使用该destroy函数(从您的代码看来,您不是)。

destroy删除附加到控制器的事件侦听器,这些侦听器具有对全局模型和集合的引用(这可以防止内存泄漏),当您关闭窗口时,您已经销毁了任何此类引用(但主要是因为您没有使用模型视图绑定)。

所以根本不要打电话$.destroy

于 2013-10-06T14:00:29.387 回答