CWAC android无限列表适配器非常大的列表

时间:2012-09-02 04:16:48

标签: android commonsware-cwac

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

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分:2)

EndlessAdapter与您的问题没什么关系。只要底层适配器回收其行,适配器框架就可以处理“非常大的列表”。但是,最终,您的模型数据将占用过多的堆空间。

  

那我该如何处理缓存?

首先不要在ListView中放入“千件商品”。为您的用户提供一些方法来查找不涉及筛选大量列表的内容。

  

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

不,只能在其他任何Adapter中执行此操作。

  

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

制定您自己的AdapterViewAdapter框架,该框架的工作原则是Adapter报告某些较大数据集中某些位置的内容。

  

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

与任何其他Adapter相同。