当我使用dismiss删除弹出窗口时,它是只将其隐藏还是从内存中删除?
我尝试了dismiss,然后尝试了showAtLocation几次(使用相同的PopupWindw对象,而不是重新创建它),窗口显示和隐藏都没有问题。问题是我能指望它吗--也许它被GC标记为删除,但还没有被垃圾收集?
谢谢。
发布于 2012-04-23 16:30:14
dismiss()与showAtLocation()相反,对象在dismiss()后保持有效状态。因此,切换dismiss()/showAtLocation()是安全的
可以从这里的安卓源代码中看到--您可以查看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
发布于 2012-04-23 16:26:44
只要有对对象的引用,就不会将该对象标记为删除。这样你以后就可以重新放映了。
发布于 2012-04-23 16:22:54
您可以使用以下命令强制使用垃圾收集器
System.gc()
https://stackoverflow.com/questions/10277081
复制相似问题