ProgressDialogue根本不是解雇或取消

时间:2016-04-05 05:28:16

标签: java android progressdialog

我在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()。它的进展对话相同,但没有被取消。

3 个答案:

答案 0 :(得分:2)

创建类似的功能,并在需要时调用..

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;
    }
}

答案 1 :(得分:0)

您将cancelable设置为false,因此请勿调用progressBar.cancel()。跳过它并直接调用progressBar.dismiss()。它应该工作。如果不是,我们会深入挖掘。

答案 2 :(得分:0)

setCancelable中使用true而不是false,它会起作用。

progressBar.setCancelable(true);