package com.bawei.asyctask;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.TextView;
/**
*
* @author lcr
* 第一个泛型:规定doInBackground方法的参数类型,规定AsyncTask.execute方法传递的参数类型
* 第二个泛型:规定onProgressUpdate方法参数的类型,publishProgress参数类型
* 第三个泛型:规定doInBackground方法的返回值类型
*
*/
public class MyAsycTask extends AsyncTask<String, Double, String>{
private TextView tv;
public MyAsycTask(TextView tv) {
super();
this.tv = tv;
}
//运行在子线程,作耗时操作
//返回值被onPostExecute接收
@Override
protected String doInBackground(String... params) {
String string = "100";
HttpClient httpClient=new DefaultHttpClient();
HttpGet httpGet=new HttpGet(params[0]);
try {
HttpResponse httpResponse = httpClient.execute(httpGet);
int statusCode = httpResponse.getStatusLine().getStatusCode();
if(statusCode==200){
HttpEntity httpEntity = httpResponse.getEntity();
string = EntityUtils.toString(httpEntity,"gbk");
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return string;
}
//运行在主线程上,在doInBackground方法之后执行,用来接收doInBackground的返回值
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
Log.d("lcr", result.toString());
}
//运行在主线程,在doInBackground方法之前执行
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
Log.d("lcr", "准备联网");
}
@Override
protected void onProgressUpdate(Double... values) {
super.onProgressUpdate(values);
double r=values[0];
//向上取整数
double ceil = Math.ceil(r);
// tv.setText("正在执行:"+ceil);
Log.d("lcr","执行进度:"+values[0]);
}
}
AsycTask----MyAsycTask类
最新推荐文章于 2022-06-29 08:00:00 发布