请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

每次进入Fragment都会泄漏一次的问题。

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需要注意些啥,如何有效避免内存泄漏呢。

正在回答 回答被采纳积分+3

1回答

随风绽放 2024-11-17 13:54:45

同学你好,这种情况下需要 Dump 内存快照进行详细的分析,AS 自带的分析只能帮你确认有泄露,还是需要使用 MAT 进行分析泄露引用链。然后切断引用链就解决了泄露问题。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号