抛出:IllegalArgumentException为ProgressDialog.dismiss()时它显示
问题描述:
以下是简单的代码:抛出:IllegalArgumentException为ProgressDialog.dismiss()时它显示
if (myProgressDialog.isShowing()) {
myProgressDialog.dismiss();
}
任何人都可以阐明为什么myProgressDialog.dismiss一些光()有时会导致以下情况例外:
java.lang.IllegalArgumentException: View=com.android.internal.policy.PhoneWindow$DecorView{83559f5 V.E...... R......D 0,0-1026,348} not attached to window manager
Stack trace: java.lang.IllegalArgumentException: View=com.android.internal.policy.PhoneWindow$DecorView{83559f5 V.E...... R......D 0,0-1026,348} not attached to window manager
at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:424)
at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:350)
at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:116)
at android.app.Dialog.dismissDialog(Dialog.java:362)
at android.app.Dialog.dismiss(Dialog.java:345)
答
这是因为你的活动被破坏了。 检查在调用进度对话框之前是否调用了finish().. 谢谢
答
尝试此固定码:
if (YourActivity.this.isDestroyed()) { // or call isFinishing() if min sdk version < 17
return;
}
if (myProgressDialog != null && myProgressDialog.isShowing()) {
myProgressDialog.dismiss();
}
IllegalArgumentException:“View = com.android.internal.policy.PhoneWindow $ DecorView {83559f5 VE ..... R .. ... D 0,0-1026,348}不附加到窗口管理器“。 错误说您的对话框不再附加到您当前的片段/活动。检查您的片段/活动在您的对话框关闭之前仍然可见。 – james
谢谢你的提示。偶尔会在用户的日志中报告。我无法重现这一点。我刚刚添加了代码来检查活动。 – Hong