0

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

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

谢谢。

4

3 回答 3

1

只要您有一个对象的引用,它就不会被标记为删除。因此,您可以稍后重新显示它。

于 2012-04-23T08:26:43.823 回答
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

于 2012-04-23T08:30:13.717 回答
0

您可以强制使用垃圾收集器

System.gc()

于 2012-04-23T08:22:54.427 回答