我有一个带有进度对话框的应用程序(由pd = new ProgressDialog(ActivityName.this); ... pd.show();
创建)一切正常但是如果我点击/点击对话框,它会被关闭,活动内容会到达视图的前面(进程)由对话框处理按预期运行 - 如果我更改屏幕方向,则会再次出现对话框。
有没有办法让对话框保持在最顶层(即禁用对话框外的点按)?
注意:在模拟器中,在真实手机(SGII,A4.0.4)上按预期禁用了点击,点击进度对话框的周围环境会关闭对话框...
代码:
mProgressDialog = new ProgressDialog(DownloaderActivity.this);
mProgressDialog.setMessage(DownloaderActivity.this.getString(R.string.downloadingfile));
mProgressDialog.setIndeterminate(false);
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mProgressDialog.show(); … mProgressDialog.dismiss();
答案 0 :(得分:8)
将setCanceledOnTouchOutside()方法设置为false。 Take a look at the android API
如果你已经这样做了它仍然无法正常工作,那可能是android系统的一个bug。解决此问题的一种方法是使用onCancelListener,以便在取消对话框时,侦听器中的代码会检查进度是否已完成。如果没有,它可以重新启动Dialog。