【发布时间】:2013-03-28 13:41:19
【问题描述】:
为什么要在 Activity 被销毁之前为 AlertDialog 调用dismiss() 方法?有些东西泄漏了,但究竟是什么?那么为什么 PopupWindow 可以处理 Activity 销毁呢?
我在 Android 资源中发现每个警报对话框都会创建窗口:
Window w = PolicyManager.makeNewWindow(mContext);
这是什么意思?为什么不能只使用从activity获取的PhoneWindow?
添加
说,AlertDialog 引用 Context,Context 没有引用任何内容,那么 GC 应该对这两个对象进行垃圾收集(因为它们不是从“外部”引用的)。还有什么对 AlertDialog 的引用?换句话说,内存泄漏到底在哪里?
【问题讨论】:
标签: android memory-leaks android-alertdialog