2

我有一个带有进度对话框的应用程序(pd = new ProgressDialog(ActivityName.this); ... pd.show();由- 如果我改变屏幕方向,对话框会重新出现)。

有没有办法让对话框保持在顶部(即禁用对话框外的点击)?

注意:在模拟器中,点击按预期被禁用,在真实手机(SGII,A4.0.4)上,点击进度对话框的周围关闭对话框......

代码:

mProgressDialog = new ProgressDialog(DownloaderActivity.this); 
mProgressDialog.setMessage(DownloaderActivity.this.getString(R.string.downloadin‌​gfile));      
mProgressDialog.setIndeterminate(false); 
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);   
mProgressDialog.show(); … mProgressDialog.dismiss();
4

1 回答 1

9

将 setCanceledOnTouchOutside() 方法设置为 false。 看看android API

如果你已经这样做了,但它仍然无法正常工作,那可能是安卓系统的一个错误。解决此问题的一种方法是使用 onCancelListener ,以便在取消对话框时,侦听器中的代码检查进度是否完成。如果没有,它可以重新启动对话框。

于 2012-11-26T22:24:05.697 回答