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