gpt4 book ai didi

Android-dismissDialog 不会关闭对话框

转载 作者:IT老高 更新时间:2023-10-28 22:26:22 27 4
gpt4 key购买 nike

我正在使用 showDialog()dismissDialog() 在我的应用程序中显示进度对话框。从创建对话框并在其上调用 show() 移动到使用它以在更改方向时保存状态。

但是当我从纵向->横向->纵向更改方向时,dismissDialog() 不再关闭对话框。对话框一直停留在那里,我需要按返回按钮才能让它消失。

有什么理由会这样吗?

编辑

为了克服这个问题,我尝试在 onDestroy() 中添加一个 removeDialog() 以便对话框不会创建/显示两次,并且在方向更改之前,对话框已移除。尝试添加日志语句,看看会发生什么

05-21 12:35:14.064: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:14.064: DEBUG/MyClass(193): *************onCreareDialog

05-21 12:35:15.385: DEBUG/MyClass(193): *************onSaveInstanceState
05-21 12:35:15.415: DEBUG/MyClass(193): *************onDestroy

05-21 12:35:15.585: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:15.585: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:15.715: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:17.214: DEBUG/MyClass(193): *************onSaveInstanceState
05-21 12:35:17.214: DEBUG/MyClass(193): *************onDestroy

05-21 12:35:17.275: ERROR/WindowManager(193): android.view.WindowLeaked: Activity com.android.MyClass has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@43362088 that was originally added here

05-21 12:35:17.395: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:17.395: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:17.475: DEBUG/MyClass(193): *************onCreareDialog

如果我们在这里看到,最初显示 Activity 时,onCreateDialog 被调用一次,在改变方向时,onSaveInstanceState 和 onDestroy 被调用。

但在那之后,onCreateDialog 被调用了两次(一次是通过调用 showDialog 我做的,但为什么是第二次?)并且每次我改变方向时都会发生这种情况。

知道为什么会这样吗?

再次感谢

最佳答案

对我来说最好的解决方案似乎是使用 removeDialog(id) 而不是 dismissDialog();这种方式重复使用较少,但更安全(不会抛出任何东西)并且在改变方向时没有问题。

关于Android-dismissDialog 不会关闭对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/891451/

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