gpt4 book ai didi

android - 为什么我应该在 Android 中手动关闭 AlertDialog?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:46 27 4
gpt4 key购买 nike

为什么要在 Activity 销毁前调用 AlertDialog 的 dismiss() 方法?有些东西泄漏了,但究竟是什么?为什么 PopupWindow 可以处理 Activity 销毁?

我在 Android 资源中发现每个警告对话框都会创建窗口:

Window w = PolicyManager.makeNewWindow(mContext);

这是什么意思?为什么它不能只使用从 Activity 中获取的 PhoneWindow?

已添加

比如说,AlertDialog 引用 Context,Context 什么都不引用,那么 GC 应该对这两个对象进行垃圾回收(因为它们不是从“外部”引用的)。还有什么引用了 AlertDialog?换句话说,内存泄漏到底在哪里?

最佳答案

Alertdialogs are attached to our activity using a id,This Link shows the activity of a alertdialog, once the alertdialog is displayed it is a seperate window (u set cancel false then u r forced to manage it) if it is running on back and your activity gets destroyed Every memory associated with it will be released including the id of the AlertDialog. Thats y the error pops up .I think its clear now.

关于android - 为什么我应该在 Android 中手动关闭 AlertDialog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15683432/

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