我实现了一个适配器视图,其中包含排列在列表中的非常大的数据集(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>".
有什么可能导致这种情况的原因?
答案 0 :(得分:0)
这是由每个产生asynctask的对象抓取图像并在视图被回收时取消而引起的。当列表移动得足够快时,这些任务正以极其可怕的速度创建和取消,从而在各处传递信息。