如何在删除键时从 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 中删除它们

我最终实现了 onStartonDestroy 生命周期事件,将它们从 LinkedHashMap 中删除。

受到Android发展、活动和服务的影响