我无法避免“无法添加窗口 - 令牌android.os.BinderProxy无效;您的活动是否正在运行?“将进度对话框与异步任务一起使用时出现异常。
final ProgressDialog nDialog = new ProgressDialog(MainActivity.this);
nDialog.setMessage("Loading...");
nDialog.setIndeterminate(false);
nDialog.setCancelable(false);
if(!isFinishing()){nDialog.show();}
然后,我继续:
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//Run code while showing progress dialog
ndialog.dismiss
}
}, 1000);
我开始明白,我偶尔会遇到异常,因为在访问 ndialog 时,活动将完成。因此,解决方案似乎是改变ndialog。
活动完成后显示对话框的初始问题(很少发生)通过以下方式解决:
if(!isFinishing()){nDialog.show();}
我正在考虑为nDialog.dismiss放置相同的代码。但问题是,如果我这样做:
if(!isFinishing()){nDialog.dismiss();}
并且活动在此运行之前完成,用户将陷入永远不会被关闭的对话框屏幕。
我错过了什么吗?如何防止此错误,但同时确保对话框将启动并被关闭?
谢谢!
慕斯王
相关分类