我目前有一个带有自定义适配器的ListView,它可以异步地获取描述行内容的信息。每行的一部分是图像URL,我打算异步下载然后显示。
我目前计划下载这些图片的策略是:
我还打算在调用拥有ListView的onDestroy() - 方法(或者甚至可能在onPause() - 方法中)的Activity对象时杀死挂起的下载,但最重要的是我要杀死挂起的图像的下载当行离开屏幕时。我可能实际上只是在短暂延迟后取消下载,因此如果该行再次快速进入屏幕,则可以在不浪费带宽的情况下恢复下载。
但是,我不确定一些事情:此外,对整个战略的任何评论都将受到赞赏。
答案 0 :(得分:8)
我不认为真的需要调用notifyDataSetChanged()......我会这样做:
我认为它几乎就是它(某些极端情况可能会发生)......
答案 1 :(得分:3)
我使用getFirstVisible和getLastVisible AdapterView属性来检测可见行,并将请求放在固定大小的堆栈中。
我的项目是开源的,如果你想使用它,它有一个最宽松的许可证: https://github.com/tbiehn/Android-Adapter-Image-Loader
-Travis
答案 2 :(得分:0)
我发现在Foursquared源代码中管理/获取远程资源非常有帮助:
它将图像缓存在磁盘上并处理所有3个功能请求。请参阅适配器以了解如何使用它。
当一行关闭时取消下载,你必须自己处理