当我的后台进程继续时,我使用ProgressDialog来显示,但是在后台进程完成之后,ProgressDialog仍然不会被清除。
以下是我的代码
private class async extends AsyncTask<String, Void, Boolean> {
final ProgressDialog progressDialog = new ProgressDialog(getParent());
@Override
protected Boolean doInBackground(String... params) {
GetJson json = new GetJson();
boolean success = false;
JSONObject mJsonObject = json
.readJsonObject("url");
try {
success = mJsonObject.getBoolean("success");
} catch (Exception e) {
}
return success;
}
@Override
protected void onPostExecute(Boolean result) {
if (result) {
if (progressDialog.isShowing())
progressDialog.dismiss();
}
}
}
@SuppressWarnings("static-access")
@Override
protected void onPreExecute() {
progressDialog.show(getParent(), "Working..", "Please wait...");
}
}发布于 2011-06-13 14:51:44
您可以在AsyncTask的onPostExecute()方法中调用progressDialog.dismiss()。
发布于 2011-06-13 14:54:21
private final class YourTask extends AsyncTask<Void, Void, Object> {
private ProgressDialog dialog;
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(YourActivity.this, "Title", "Message", true);
}
@Override
protected Object doInBackground(final Void... params) {
// Doing something
}
@Override
protected void onPostExecute(final Object result) {
// Check result or something
dialog.dismiss();
}
}发布于 2011-06-13 14:51:41
在onPostExecute()方法中,调用对话框上dismiss()。
https://stackoverflow.com/questions/6327369
复制相似问题