问题
示例用例:
问题
这是否会导致内存泄漏,您是否必须在创建新拓扑视图之前在旧拓扑视图中执行手动取消绑定?与绑定类似,您是否必须手动删除事件处理程序?
绑定和事件处理程序位于控件内。因此,一旦控件不再可访问,应该可以收集它的垃圾。因此,我认为你不必做任何事情,但我不知道。
非常感谢您的专业知识!
答案 0 :(得分:0)
如果您查看JavaDocs:
[...]我们实现中的所有绑定都使用WeakInvalidationListener的实例,这意味着通常不需要处理绑定。但是,如果您计划在不支持WeakReferences的环境中使用您的应用程序,则必须处置未使用的Binding以避免内存泄漏。
因此,如果您使用或扩展默认Binding
,垃圾收集器应该能够完成其工作。
如果不这样做,请务必执行并致电Binding.dispose()
。
一如既往:如果某个对象不再被任何其他对象引用,则会收集垃圾(将来的某个时刻)。因此,通常不需要在这个方向上专门实现,因为它往往会使代码混乱。