为什么要在销毁 Activity 之前为 AlertDialog 调用dismiss() 方法?有些东西泄漏了,但究竟是什么?那么为什么 PopupWindow 可以处理 Activity 销毁呢?
我在 Android 资源中发现每个警报对话框都会创建窗口:
Window w = PolicyManager.makeNewWindow(mContext);
这意味着什么?为什么它不能只使用从活动中获得的 PhoneWindow?
添加
比如说,AlertDialog 引用 Context,Context 什么都不引用,那么 GC 应该垃圾收集这两个对象(因为它们不是从“外部”引用的)。还有什么对 AlertDialog 的引用?换句话说,内存泄漏到底在哪里?