AopUtil中关于sLruCache的疑问
Closed this issue · 2 comments
huxq17 commented
sLruCache会自己创建fragment并存进去,并且会导致此fragment一直被持有,造成fragment的内存泄漏,我大概看了下相关代码,下游一般只用了fragment的class,那么有几个问题:
- 生成的fragment是啥作用?
- 必须要创建新的fragment么?
- 如果必须,生成的fragment能不能在对应的activity销毁的时候也remove掉?
dengshiwei commented
- 生成 Fragment 的作用是为了采集 Fragment 场景下的页面标题和内容,这样做的目的就是为了规避每次都去反射,造成耗时太多
- 在目前的业务下,采集
Fragment
是必须的,需要获取到触发所在页面、对控件进行标识、页面的整体结构 - 这个优化思路可以考虑一下
huxq17 commented
其实有个方案比较简单,把slrucache放到viewmodel里,这样其他activity的fragment就不会泄露了,或者自己实现用类似的思路。sdk都挺好的,就是这里能做的更好点,希望能尽快处理吧。