android如何在ArrayList中存储大量数据并缓存

你胖起来真好看 2014-04-14 10:10:56
我的安卓应用中,有一个列表页面,里面需要从数据库中读取一个数目庞大的队列,每个队列的item中,还包含从本地读取的一张大概100k左右的缩略图。我的方法是先得到数据库中读出的dbList。然后定义Arraylist itemList,在for循环中,每次new一个item对象,用于记录dbList的一条数据,在该对象中同时添加上述的一张缩略图。但是反复进入该列表页面几次后,会出现java.lang.OutOfMemoryError的错误,错误位置位于读取本地缩略图的函数中。
我尝试过在for循环外面,做new item的动作,但是这样的话,每次for循环中,给itemList中添加对象时,都是同一个,也就是最后添加的item?why?也尝试过每次退出列表页面时,都把itemList赋值为null,但是这个内存问题依然没有改善?请教各位高手有其他办法避免在for循环中new大量的对象吗?
...全文
1100 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
破折号 2014-04-14
  • 打赏
  • 举报
回复
只能说思路了 1. arraylist是不应该保存100k bitmap的 2. 由adapter模式获取image url,在显示item的时候去加载image,就可以避免oom了 3. 合理使用缓存,memory cache/file cache并用提高加载速度并降低GC概率
  • 打赏
  • 举报
回复
代码贴出来看看

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧