我不完成关闭我的Android应用程序进度条。 我声明一个对象栏对象并获取一个调用doInProgress函数的字符串并将它传递给一个名为v1的对象。 当异步任务完成他的任务时,为什么进度条(出现wichs)不会像onPostExecute方法中声明的那样被解雇?进度条不排除
在我的活动我打电话:
ProgressDialog pDialog;
response = new GetString(SecondActivity.this).execute(v1).get();
,这是myAsync任务:
package com.gms;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.impl.client.DefaultHttpClient;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
public class GetString extends AsyncTask<VariablesTable, Void, String> {
private Context context;
public ProgressDialog pDialog;
public GetString(Context c){
context = c;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(context);
pDialog.setMessage("Loading..");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
protected void onPostExecute() {
// dismiss the dialog once got all details
if (pDialog.isShowing()){
pDialog.dismiss();
}
}
@Override
protected String doInBackground(VariablesTable... obj) {
// Making HTTP request
InputStream is = null;
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
String paramString = URLEncodedUtils.format(obj[0].cat, "utf-8");
obj[0].url += "?" + paramString;
HttpGet httpGet = new HttpGet(obj[0].url);
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sb.toString();
}
}
建议? 在此先感谢
我认为你的异步任务不行。而onPostExecute不是calle –
问题是:你知道为什么onPostExecute没有被调用? – FrankBr
尝试更改onPostExecute()onPostExecute(String resp) –