2

我想知道如何使用 CWAC 的无限适配器来处理非常大的列表。

我主要关心的是内存管理。如果我缓存数千个项目,我最终会出现内存不足的异常。那么我该如何处理那个缓存呢?我可以清除之前的条目吗?

据我了解,当我们向下滚动列表时,无限适配器只会触发其 cacheInBackground() 方法和 appendCachedData() 。如果我想清除不再可见的早期条目(列表顶部)的缓存怎么办?

当我向上滚动时,无尽的适配器将如何表现?换句话说,无限适配器是双向的吗?如果没有,我可以解决这个限制吗?

提前致谢。

4

1 回答 1

2

EndlessAdapter和你的问题关系不大。只要您的底层适配器回收其行,适配器框架就可以像处理“非常大的列表”一样工作。但是,最终,您的模型数据将消耗过多的堆空间。

那么我该如何处理那个缓存呢?

首先不要将“数千个项目”ListView放在首位。为您的用户提供一些无需筛选大量列表即可查找内容的方法。

我可以清除之前的条目吗?

不,不会比你在其他任何Adapter.

如果我想清除不再可见的早期条目(列表顶部)的缓存怎么办?

编写自己的AdapterView框架,该框架在报告某些更大数据集中某些位置范围的内容Adapter的原则下工作。Adapter

当我向上滚动时,无尽的适配器将如何表现?

和任何其他的一样Adapter

于 2012-09-02T11:36:09.177 回答