gpt4 book ai didi

android - 在异步任务中关闭对话框时出现 IllegalArgumentException

转载 作者:行者123 更新时间:2023-11-30 04:00:50 26 4
gpt4 key购买 nike

我的问题和这个类似:

Error on dismissing ProgressDialog in AsyncTask

我有一个 AsyncTask,它像这样在 onPreExecute 中创建一个对话框:

dialog = ProgressDialog.show(activity, "login", "logging in, one moment please");

然后像这样关闭 onPostExecute 中的对话框:

if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}

仍然,我在执行 diolog.dismiss() 的行中收到用户的错误报告,其中包含以下消息:java.lang.IllegalArgumentException: View 未附加到窗口管理器

最常见的根本原因是 - 或者我读过 - 当用户切换方向时(从纵向到横向,反之亦然)。然而,我的应用程序被强制为纵向模式,所以这不是原因。 (我已经仔细检查过这个以确保它真的不可能)

前面提到的帖子的记者最终解决了这个问题(我也在其他地方读过这个解决方案),方法是在 Activity 类中为 AsyncTask 创建一个内部类,并使用 Activity 类中的 onCreateDialog 并从中调用 showDialog异步任务。 (如果你不明白这一点,请阅读他的帖子)我已经开始尝试实现它,但似乎 showDialog 已被弃用:所以这不是我的解决方案。

我找到的最后一个解决方案是简单地捕获异常。我自己也曾想过,但只是作为最后的手段。我更愿意了解真正出了什么问题并对此进行预测,而不是简单地捕获异常而不知道发生了什么。

最佳答案

你应该在 manifest.xml 中添加它

最高 API 级别 12

   <activity
android:label="@string/app_name"
android:name=".Activity_calling_AsyncTask"
android:configChanges="keyboardHidden|orientation">

在 apl 12 级之后,

   <activity
android:label="@string/app_name"
android:name=".Activity_calling_AsyncTask"
android:configChanges="keyboardHidden|orientation|screensize">
</activity>

希望对您有所帮助。

关于android - 在异步任务中关闭对话框时出现 IllegalArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12533677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com