个人理解具体应用
AsyncTask分析简单使用复杂应用
个人理解
我们都知道android4.0之后网络不能在主线程中访问,所以访问网络只能在其他线程或者在异步中进行。如果只是单纯的实现一次访问网络功能,例如登录,使用AsyncTask是比较好的。也可以把AsyncTask当成一个小线程
具体应用
①AsyncTask分析
1、AsyncTask参数分析
new AsyncTask<
Params, Progress,
Result>
第一个参数Params,是给它自己的doInBackground方法传参,返回值类型为第三个Result参数的类型 第二个参数Progress,是给它自己的onProgressUpdate方法传参
2、AsyncTask方法执行过程分析(只说主要的)
doInBackground执行完后,把返回值传参给onPostExecute方法 doInBackground一般执行耗时方法 onPostExecute一般处理doInBackground的结果,例如显示UI
②简单使用
new AsyncTask<String, Integer, String>() {
@Override
protected String
doInBackground(String... arg0) {
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
}
}.execute();
③复杂应用
public class DownImageTask extends AsyncTask<String, Integer, Bitmap> {
Bitmap bitmap;
ImageView imageView;
String url;
public DownImageTask(String url, ImageView imageView) {
this.imageView = imageView;
this.url = url;
}
@Override
protected Bitmap doInBackground(String... params) {
try {
URL url =
new URL(
this.url);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream inputStream = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(inputStream);
inputStream.close();
}
catch (Exception e) {
e.printStackTrace();
}
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
imageView.setImageBitmap(result);
}
}
上述代码是获取网络图片并显示 参数传递我用的是构造方法
转载请注明原文地址: https://ju.6miu.com/read-968347.html