AsynTask的封装,通过接口回调的方式
来源:互联网 发布:求购淘宝店铺 编辑:程序博客网 时间:2024/06/08 04:56
public class AsynTaskHelper {
private static final String TAG = "AsynTaskHelper";
public void downloadData(Context context , String url, OnDataDownloadListener downloadListener) {
new MyTask(context, downloadListener).execute(url);
}
private class MyTask extends AsyncTask<String, Void, byte[]> {
private OnDataDownloadListener downloadListener;
private ProgressDialog pdDialog;
private Context context;
public MyTask(Context context,OnDataDownloadListener downloadListener) {
this.context = context;
this.downloadListener = downloadListener;
pdDialog = new ProgressDialog(context);
pdDialog.setTitle("提示:");
pdDialog.setIcon(R.drawable.ic_launcher);
pdDialog.setMessage("正在下载..... ");
}
@Override
protected void onPreExecute() {
super.onPreExecute();
pdDialog.show();
}
@Override
protected byte[] doInBackground(String... params) {
BufferedInputStream bis = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
URL url = new URL(params[0]);
HttpURLConnection httpConn = (HttpURLConnection) url
.openConnection();
httpConn.setDoInput(true);
httpConn.setRequestMethod("GET");
httpConn.connect();
if (httpConn.getResponseCode() == 200) {
bis = new BufferedInputStream(httpConn.getInputStream());
byte[] buffer = new byte[1024 * 8];
int c = 0;
while ((c = bis.read(buffer)) != -1) {
baos.write(buffer, 0, c);
baos.flush();
}
return baos.toByteArray();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(byte[] result) {
downloadListener.onDataDownload(result);
pdDialog.dismiss();
super.onPostExecute(result);
}
}
public interface OnDataDownloadListener {
void onDataDownload(byte[] result);
}
}
0 0
- AsynTask的封装,通过接口回调的方式
- AsynTask的使用
- AsynTask更深的理解
- AsynTask的一些使用
- EventBus 初步 让你省去handler、AsynTask,接口回调
- 通过接口回调方式来设置RecyclerView的条目点击监听事件
- android的service、handler、asyntask
- 简单AsynTask的使用实例
- 接口的封装
- 接口结果的封装
- Fragment 的静态方式和动态方式以及动态方式中fragment之间通过activity传递 数据(接口回调 ):
- Android通过接口方式调用服务里面的方法
- python通过定制路径的方式解析接口返回数据
- 广播方式注册的接口回调
- 安卓AsynTask异步任务的使用
- 退出Activity时AsynTask的处理
- Handler原理及AsynTask的使用
- Android asynTask造成的内存泄露
- UVA11134传说中的车(放棋子)
- 进程线程基础
- 委托(一):委托与方法
- Maven环境的搭建与idea配置
- Python___List Comprehension and Generator Function
- AsynTask的封装,通过接口回调的方式
- ByteArrayOutputStream用法
- 线程间通信
- Qt开发环境突然坏了,无使用 designer打开UI的文件
- 基于邻接表的图的基本操作(建立,遍历)
- UVA11137(立方数之和)
- 消息
- hdoj - 1425!!!
- php示例代码之使用mysqli对象