【发布时间】:2015-05-01 09:59:43
【问题描述】:
我刚刚写了一个代码,需要在与服务器交互时显示进度条。但是如果我在下面的代码中调用解除方法,它就不起作用了。
public class AsyncClass extends AsyncTask<String, String, String> {
String result;
public ProgressDialog progressbar;
static Context context;
public AsyncClass(Context context,String result) {
this.context = context;
this.result = result;
}
@Override
protected String doInBackground(String... params) {
try {
HttpClient httpclient = new DefaultHttpClient();
URI u = new URI(params[0]);
// url = Urls.SENDMOVIE_REQUEST_URL;
HttpGet HG = new HttpGet(u);
HttpResponse response = httpclient.execute(HG);
//httpEntity = httpResponse.getEntity();
result = EntityUtils.toString(response.getEntity());
Log.d("result", result);
} catch(Exception e) {
e.printStackTrace();
}
return result;
}
@Override
protected void onPreExecute() {
progressbar = new ProgressDialog(context);
progressbar.setCancelable(true);
progressbar.setMessage("loading....");
progressbar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressbar.setProgress(0);
progressbar.show();
}
@Override
protected void onPostExecute(String result) {
progressbar.dismiss();
}
}
【问题讨论】:
-
检查进度条的声明。不需要全局初始化对象吗?
-
你试过在onProgressUpdate()里面做吗?
-
@Iqbal 在他的异步任务中是全局的
-
如何启动 AsyncTask?
-
尝试删除这一行:progressbar.setProgress(0);
标签: android android-asynctask android-progressbar