什么可能导致MessageQueue失控的增长

时间:2013-03-25 19:31:22

标签: java android memory

我实现了一个适配器视图,其中包含排列在列表中的非常大的数据集(2000+个对象)。滚动太快会导致内存增长,并且在使用eclipse的MAT进行分析后,结果表明所有增长都与MessageQueue有关。以下是具体信息:

One instance of "android.os.MessageQueue" loaded by "<system class loader>" occupies 57,300,528 (77.75%) bytes. The memory is accumulated in one instance of "android.os.Message" loaded by "<system class loader>".

有什么可能导致这种情况的原因?

1 个答案:

答案 0 :(得分:0)

这是由每个产生asynctask的对象抓取图像并在视图被回收时取消而引起的。当列表移动得足够快时,这些任务正以极其可怕的速度创建和取消,从而在各处传递信息。