不允许用户取消进度对话框

时间:2014-08-12 17:19:58

标签: android dialog block progressdialog back-button

在我的应用程序中,如果我在进度对话框外单击或按下后退按钮,则在结束作业之前退出进度对话框。如何避免这种行为?

以下是代码:

private class DownloadDataFromServer extends AsyncTask<String, Integer, String> {
    ProgressDialog dialog;

    @Override
    protected void onPreExecute() {
        // Instantiate ProgressDialog and Set style to STYLE_HORIZONTAL
        dialog = new ProgressDialog(HomePage.this);
        dialog.setIndeterminate(false);
        dialog.setMax(100);
        dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        dialog.setCancelable(true);
        dialog.setTitle("Downloading");
        dialog.setMessage("Please wait...");
        dialog.show();

        super.onPreExecute();
    }

    @Override
    protected String doInBackground(String... urls) {
        // My code
    }

    protected void onProgressUpdate(Integer... progress) {
        // Update the progress
        dialog.setProgress(progress[0]);
    }

    @Override
    protected void onPostExecute(String result) {
        // My code
        dialog.dismiss();
}

3 个答案:

答案 0 :(得分:3)

在受保护的void PreExecute方法中更改此属性

dialog.setCancelable(true);

dialog.setCancelable(false);

应该这样做。

答案 1 :(得分:3)

如果您只想在用户点击视图范围之外时停用取消,请将此行添加到onPreExecute中的初始值设定项中:

dialog.setCanceledOnTouchOutside(false);

答案 2 :(得分:2)

只需将dialog.setCancelable(true);更改为dialog.setCancelable(false);

即可