每次进入Fragment都会泄漏一次的问题。
来源:4-4 内存抖动解决实战

PassionFUN2237840
2024-10-15
app中有一个FragmentOther中有6个Fragment,这六个Fragment是用Viewpager2进行加载的,点击不同的tab标签显示对应的Fragment,FragmentOther中通过SparseArray缓存了六个Fragment的实例,每次进入退出FragmentOther界面都会泄漏一次,我看对应生命周期方法都进行了反初始化和资源回收了, 并且使用了Android Studio的Memory Profile工具进行分析,由于进入退出了FragmentOther3次,leaks为18,点击leaks,展示泄漏的Fragment,然后点击对应的Fragment,然后有个reference引用,但是没有找到具体泄漏的位置在哪(jump to source只是到具体的Fragment,而没有指定哪一行代码可能导致内存泄漏),请问老师,怎么去排查具体的哪一行代码呢?ps:使用Viewpager2+Fragment+SparseArray需要注意些啥,如何有效避免内存泄漏呢。
写回答
1回答
-
随风绽放
2024-11-17
同学你好,这种情况下需要 Dump 内存快照进行详细的分析,AS 自带的分析只能帮你确认有泄露,还是需要使用 MAT 进行分析泄露引用链。然后切断引用链就解决了泄露问题。
00
相似问题