进度对话框根本没有关闭或取消
ProgressDialogue is not dismissing or cancelling at all
我在 API 调用中显示了一个进度条,如下所示:
// prepare for a progress bar dialog
progressBar = new ProgressDialog(context);
progressBar.setCancelable(false);
progressBar.setMessage(context.getResources().getString(R.string.please_wait));
progressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
但是当我取消或关闭上面创建的进度对话框时,它没有任何效果。
progressBar.cancel();
progressBar.dismiss();
以上两个调用是成功&失败的回调方法:
@Override
public void success(RockAPI.CallResult result) {
progressBar.cancel();
progressBar.dismiss();
....
}
@Override
public void failure(RockAPI.CallResult result) {
progressBar.cancel();
progressBar.dismiss();
......
}
我在成功点和失败点调试了应用程序,这些代码行得到执行,但进度对话仍然存在。我已经检查了所有代码,没有其他地方可以调用此进度条 show()
。同样的进度对话,只是没有被取消。
您正在将 cancelable 设置为 false,所以不要调用 progressBar.cancel()。跳过它并直接调用 progressBar.dismiss()。它应该工作。如果没有,我们将深入挖掘。
创建类似的函数并在需要时调用..
ProgressDialog progressDialog;
public void showPD(String message) {
if (progressDialog == null) {
progressDialog = new ProgressDialog(getContext());
//progressDialog.setProgressNumberFormat(null);
//progressDialog.setProgressPercentFormat(null);
//progressDialog.setIndeterminate(true);
//progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMessage(message);
progressDialog.setCancelable(false);
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.show();
}
}
public void hidePD() {
if (progressDialog != null) {
progressDialog.dismiss();
progressDialog = null;
}
}
在您的 setCancelable
中使用 true 而不是 false,它将起作用。
progressBar.setCancelable(true);
我在 API 调用中显示了一个进度条,如下所示:
// prepare for a progress bar dialog
progressBar = new ProgressDialog(context);
progressBar.setCancelable(false);
progressBar.setMessage(context.getResources().getString(R.string.please_wait));
progressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
但是当我取消或关闭上面创建的进度对话框时,它没有任何效果。
progressBar.cancel();
progressBar.dismiss();
以上两个调用是成功&失败的回调方法:
@Override
public void success(RockAPI.CallResult result) {
progressBar.cancel();
progressBar.dismiss();
....
}
@Override
public void failure(RockAPI.CallResult result) {
progressBar.cancel();
progressBar.dismiss();
......
}
我在成功点和失败点调试了应用程序,这些代码行得到执行,但进度对话仍然存在。我已经检查了所有代码,没有其他地方可以调用此进度条 show()
。同样的进度对话,只是没有被取消。
您正在将 cancelable 设置为 false,所以不要调用 progressBar.cancel()。跳过它并直接调用 progressBar.dismiss()。它应该工作。如果没有,我们将深入挖掘。
创建类似的函数并在需要时调用..
ProgressDialog progressDialog;
public void showPD(String message) {
if (progressDialog == null) {
progressDialog = new ProgressDialog(getContext());
//progressDialog.setProgressNumberFormat(null);
//progressDialog.setProgressPercentFormat(null);
//progressDialog.setIndeterminate(true);
//progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMessage(message);
progressDialog.setCancelable(false);
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.show();
}
}
public void hidePD() {
if (progressDialog != null) {
progressDialog.dismiss();
progressDialog = null;
}
}
在您的 setCancelable
中使用 true 而不是 false,它将起作用。
progressBar.setCancelable(true);