http://www.cnblogs.com/zhangdongzi/archive/2011/04/13/2015348.html

在第一节中,我们使用Handler、Thread/Runnable 、URL、HttpURLConnection等等来进行异步下载网络图片。然后第二节中换了AsyncTask方式。那么这一节我们再应用其他方式,这个方式与第一节有点雷同,感觉走了一圈回到原地,只是风景更加美丽。人生很多时候也是如此,从NULL中来再回到NULL中。

那么它是谁呢?java.util.concurrent

java.util.concurrent 是在并发编程中很常用的实用工具类。

ExecutorService类:具有服务生命周期的Executors。

Executors 类:执行器,将为你管理Thread 对象。

我们知道这些是用来处理并发任务的,当然我们Demo只是请求一张图片而已,并不能体现并发,但是假设我们有一个ListView,里面每一项都需要一张网络图片显示呢?那么并发性就可以体现出来了:多个线程并发从网络下载图片。当然这个版本不会使用listView显示多个项图片,以后做个版本吧!研究下。

思路是这样的:

1:动态的创建N个线程,防在线程池中。

2:系统从线程池中取出一个线程投入执行,线程池中若没有线程可用,其他任务只有先等待了,直到有新线程释放,才调用。

如下有几个方法可以动态的指定多少个线程。

newFixedThreadPool(int nThreads) 指定线程个数

newCachedThreadPool() 系统为每个任务都建立一个线程

下面可以实现并发下载数据

                                            case                         R.id.btnThress:
progress.setVisibility(View.VISIBLE);
final Handler newhandler = new Handler();
executorService.submit(
new Runnable(){
@Override
public void run() {
try {
URL newurl
= new URL(params);
HttpURLConnection conn
= (HttpURLConnection)newurl.openConnection();
conn.setDoInput(
true );
conn.connect();
InputStream inputStream
= conn.getInputStream();
bitmap
= BitmapFactory.decodeStream(inputStream);
newhandler.post(
new Runnable(){
@Override
public void run() {
ImageView view
= (ImageView)frameLayout.findViewById(R.id.image);
view.setImageBitmap(bitmap);
}
});
}
catch (MalformedURLException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}

});
break ;

运行结果为:

分类: Android基础

更多相关文章

  1. Handler: 更新UI的方法
  2. Android(安卓)AsyncTask 源码解析
  3. 【Android】更改程序图标
  4. DICOM入门(四)——Android读取DCM文件图片
  5. android中google“定位查询”
  6. Android(安卓)非UI线程使用View.post()方法一处潜在的内存泄漏
  7. Android(安卓)注解
  8. Android(安卓)读取Bitmap的几种方式
  9. Android实现QQ图片说说照片选择效果

随机推荐

  1. 关于Android进程知识,你需要知道这些(一)
  2. Android(安卓)企业微信登录 接入指南
  3. Android(安卓)Q 适配详细操作
  4. Android(安卓)中如何将带有html格式的文
  5. 安卓端app开发!连续四年百度Android岗必问
  6. 我今天的面试题,注册广播有几种方式,这些方
  7. Android获取SD卡路径/内存的几种方法
  8. Android自定义下拉刷新动画--仿百度外卖
  9. 节后收到阿里offer是什么感觉,专科Android
  10. Android敲诈者病毒“安卓性能激活”分析(2