我的问题是类似这样的:抛出:IllegalArgumentException驳回在异步任务对话框时
Error on dismissing ProgressDialog in AsyncTask
我有一个创建像这样的onPreExecute对话框的的AsyncTask:
而驳回onPostExecute中的对话框如下所示:
if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
尽管如此,我从上线的用户在哪里做diolog.dismiss()与消息错误报告: java.lang.IllegalArgumentException异常:查看未连接到窗口管理器
最常见的根本原因是 - 或所以我读过 - 当用户切换方向时(从纵向到横向或反之亦然)。 但我的应用程序被强制为肖像模式,所以这不可能是原因。 (我仔细检查过这确保它确实是不可能的)
之前提到的后记者解决它到底(我读过这个解决方案也别处)通过创建一个内部类活动类中的AsyncTask,以及来自活动类的onCreateDialog并从AsyncTask调用showDialog。 (看他的帖子,如果你不明白这一点) 我开始想实现这一点,但它似乎是的ShowDialog deprected:所以这不是我的解决方案。
最后的解决方案,我发现的是通过简单的捕捉异常。我自己也想到了这一点,但只是作为最后的手段。我更愿意理解真正出现错误的地方,并期待这一点,而不是简单地捕捉异常,也不知道发生了什么。
发布一个完整的stacktrace –