在我的应用程序中,如果我在进度对话框外单击或按下后退按钮,则在结束作业之前退出进度对话框。如何避免这种行为?
以下是代码:
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();
}
答案 0 :(得分:3)
在受保护的void PreExecute方法中更改此属性
dialog.setCancelable(true);
到
dialog.setCancelable(false);
应该这样做。
答案 1 :(得分:3)
如果您只想在用户点击视图范围之外时停用取消,请将此行添加到onPreExecute
中的初始值设定项中:
dialog.setCanceledOnTouchOutside(false);
答案 2 :(得分:2)
只需将dialog.setCancelable(true);
更改为dialog.setCancelable(false);