每次进入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 进行分析泄露引用链。然后切断引用链就解决了泄露问题。

0
0

Top团队大牛带你玩转Android性能分析与优化

由表及里学到国内Top团队对性能问题的体系化解决方案

1696 学习 · 532 问题

查看课程