AsynTask的封装,通过接口回调的方式



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);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值