PopupWindow解雇

时间:2012-04-23 08:18:53

标签: android

当我使用dismiss删除弹出窗口时,是否只隐藏它或将其从内存中删除?

我尝试dismiss,然后showAtLocation几次(使用相同的PopupWindw对象,而不是重新创建它),窗口显示并隐藏没有问题。问题是我可以指望它 - 也许它被GC标记为删除,但还没有被垃圾收集?

感谢。

3 个答案:

答案 0 :(得分:1)

只要您有对象,就不会将对象标记为删除。所以你以后可以重新展示它。

答案 1 :(得分:1)

dismiss()showAtLocation()相反,对象在dismiss()之后仍处于有效状态。因此,切换dismiss()/showAtLocation()

是安全的

从这里的Android源代码可以看出 - 您可以查看dismiss()showAtLocation()实现

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.5_r4/android/widget/PopupWindow.java#PopupWindow.showAtLocation%28android.view.View%2Cint%2Cint%2Cint%29

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.5_r4/android/widget/PopupWindow.java#PopupWindow.dismiss%28%29

答案 2 :(得分:0)

您可以使用

强制使用垃圾收集器

System.gc()