Android-skin-support icon indicating copy to clipboard operation
Android-skin-support copied to clipboard

SkinCompatDelegate中的mSkinHelpers貌似有内存泄漏

Open 528787067 opened this issue 3 years ago • 0 comments

SkinCompatDelegate中的mSkinHelpers使用虚引用持有所有支持换肤的view,虽然view会随着页面关闭自动回收,但是对应被mSkinHelpers 这个列表持有的 WeakReference 对象本身貌似不会被回收,会一直存在 mSkinHelpers 列表中,不断的 onCreateView 貌似会使 mSkinHelpers 列表不断增长。所以这里每次 add 对象到 mSkinHelpers 列表的时候是否需要添加清理掉列表中被回收的对象的逻辑?或者换肤遍历列表的时候清理无用对象?或者调整这里的逻辑,不使用列表来持有可换肤view对象,而是构造view的时候使用 addOnAttachStateChangeListener,在 onViewAttachedToWindow 里面注册换肤监听,onViewDetachedFromWindow 反注册换肤监听?

528787067 avatar Nov 08 '22 08:11 528787067