如何在删除键时从 LinkedHashMap 对象中删除侦听器
How to remove listeners from LinkedHashMap objects when key is removed
我有一个 LinkedHashMap
像这样:
private LinkedHashMap<String, Column> columns = new LinkedHashMap<>();
我加一个Column
:
columns.put(name, column);
其中 Column
有一个 带有侦听器的对象。
当我删除列时:
columns.remove(name);
听众仍然活跃。
我试过 WeakHashMap
确实有帮助,听众 不再活跃 。
但是WeakHashMap
不保留插入顺序。
我也曾尝试将 Column
设置为空,然后从地图中删除密钥,但没有成功。听众仍然活跃。
对此有什么建议吗?我错过了什么吗?
您需要从列而不是 HashMap 中删除它们
我最终实现了 onStart
和 onDestroy
生命周期事件,将它们从 LinkedHashMap
中删除。
受到Android发展、活动和服务的影响
我有一个 LinkedHashMap
像这样:
private LinkedHashMap<String, Column> columns = new LinkedHashMap<>();
我加一个Column
:
columns.put(name, column);
其中 Column
有一个 带有侦听器的对象。
当我删除列时:
columns.remove(name);
听众仍然活跃。
我试过 WeakHashMap
确实有帮助,听众 不再活跃 。
但是WeakHashMap
不保留插入顺序。
我也曾尝试将 Column
设置为空,然后从地图中删除密钥,但没有成功。听众仍然活跃。
对此有什么建议吗?我错过了什么吗?
您需要从列而不是 HashMap 中删除它们
我最终实现了 onStart
和 onDestroy
生命周期事件,将它们从 LinkedHashMap
中删除。
受到Android发展、活动和服务的影响