HttpEntity:一个可以发送接收HTTP消息的实例
在一些情况下,javaDoc根据它们的内容来源把entity分三种:streamed即内容来源是数据流,一般不可重复的;self-contained內容来自内
存也意味着和连接以及其他entities没有关系,一般可重复;wrapping内容从另一个entity获得。
consumeContent():这个方法被调用意味着这个实例的内容不再被请求了而该实例分配的所有资源都会被释放。
bytesSkipped = 1; // 读一个字节这里当跳过0个字节时为什么要读一个字节不是太懂……
如果在ListAdapter的getView方法中直接下载图片,效果会很卡因为每一个新图像的显示都要等图像下载下来。
我們创建了一个from imageeDownloader类来负责生成这些新的下载任务(task)它提供download方法来分配一张从URL下载的图片到对应的from imageeView中。
BitmapDownloaderTask是AsyncTask的子类用来实际下载图片嘚。调用execute(url)来运行它能够立即返回结果,这也是UI线程调用它的主要原因
对于ListView上的图像浏览,当用户快速滑动ListView时某一个from imageeView对象会被用到很多次,每一次显示都会触发一个下载然后改变对应的图片。和大多数并行应用一样有顺序相关的问题。在这个程序中不能保证下载会按开始的顺序结束,有可能先开始的后下载完“ The result is that the from imagee finally
为了解决这个问题,我们应该记住下载的顺序使得最后的下载会被有效地显示,要让每一个from imageeView记住它们的上一次下载任务因此我们给出了DownloadedDrawable类,向from imageeView中加入对对应下载任务的弱引用来暂时绑定正在下载图片的from imageeView
@创建一个和该from imageeview相对应的下载任务,这个任务对from imageeview进行弱引用
@创建与这个任务相对应的DownloadedDrawable对这个任务弱引用
@执行下载任务,下载对应url的图像 ——execute(url)进入下载任务类
在下载任务类中:
@获得任务引用的from imageeview
@如果当前任务是这个from imageeview所对应的任务则设置这个from imageeview的图片为下载下
来的Bitmap
from imageeview和任务相互弱引用,形成绑定关系