高效率下载图片——防止内存溢出(2)
来源:未知 责任编辑:责任编辑 发表时间:2015-01-01 13:14 点击:次
//下载队列
private List<ImageDownloadItem> queue = new ArrayList<ImageDownloadItem>();
private synchronized void addDownloadItem(ImageDownloadItem item) {
queue.add(item);
this.notify();//添加了下载项就激活本线程
}
@Override
public void run() {
while(true) {
while(queue.size() > 0) {
ImageDownloadItem item = queue.remove(0);
String imagePath = downloadImage(item.imageUrl);
//缓存图片路径
cache.put(item.imageUrl, imagePath);
if (item.callback != null) {//需要执行回调来显示图片
item.imagePath = imagePath;
//交由UI线程处理
Message msg = handler.obtainMessage();
msg.obj = item;
handler.sendMessage(msg);
}
}
try {
synchronized(this) {
this.wait();//没有下载项时等待
}
} catch (InterruptedException e) {
e.printStackTrace();
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>