第六章 Asynctask 异步加载
1.好处:不需要创建线程就可管理线程
缺点:步骤多
2.步骤:
(1)创建一个类继承Asynctask<xxx,xxx,xxx>;
三个泛型参数:
第一个:决定了execute()方法的传入值类型,决定了doInBackground()方法的传入值类型
第二个:决定了publishProgress()方法的传入值类型,决定了onProgressUpdate()方法的传入值类型
第三个:决定了doInBackground()方法的返回值类型,决定了onPostExecute()方法的传入值类型、
3.执行过程:
onPreExecute→→→doInBackground(子线程中)→→→onPostExecute
↓
↓
↓
publishProgress→→→onProgressUpdate
4.泛型:
Java5.0之后的新特性,可变参数,类型一定,个数不定
例如:
static int add(Integer...c){
int sum=0;
for(int i=0;i<c.length;i++){
sum+=c[i];
}
return sum;
}
5.下载网络资源步骤:
//得到路径
String path = xxx;
//获取URL对象
URL url = new URL(path);
//打开链接
URLConnection urlConnection = url.openConnection();
//获取流
InputStream is = urlConnection.getInputStream();
//通过图片工厂转换得到Bitmap类型的对象
Bitmap bitMap = BitmapFactory.decodeStream(is);
//设置连接超时
urlConnection.setConnectTimeout(3000);
//设置读取超时
urlConnection.setReadTimeout(3000);