当我使用dismiss
删除弹出窗口时,它只是隐藏它还是从内存中删除它?
我尝试dismiss
了showAtLocation
几次(使用相同的 PopupWindw 对象,而不是重新创建它)并且窗口显示和隐藏没有问题。问题是我可以指望它 - 也许它被 GC 标记为删除,但还没有被垃圾收集?
谢谢。
当我使用dismiss
删除弹出窗口时,它只是隐藏它还是从内存中删除它?
我尝试dismiss
了showAtLocation
几次(使用相同的 PopupWindw 对象,而不是重新创建它)并且窗口显示和隐藏没有问题。问题是我可以指望它 - 也许它被 GC 标记为删除,但还没有被垃圾收集?
谢谢。
只要您有一个对象的引用,它就不会被标记为删除。因此,您可以稍后重新显示它。
dismiss()
与此相反showAtLocation()
,对象在之后保持有效状态dismiss()
。所以切换是安全的dismiss()/showAtLocation()
从这里的Android源代码可以看出——你可以看看dismiss()
和showAtLocation()
实现
您可以强制使用垃圾收集器
System.gc()