遇到一个 fragment 泄漏的问题

大利猫 2015-10-14 05:37:26
使用 leak canary 发现了一个fragment的内存泄漏一直找不到原因 ,各位帮看看,引用栈:
In com.vanke.activity:1.0:1.
* com.vanke.activity.act.home.MainFragment has leaked:
* GC ROOT static android.view.inputmethod.InputMethodManager.sInstance
* references android.view.inputmethod.InputMethodManager.mCurRootView
* references com.android.internal.policy.impl.PhoneWindow$DecorView.mContext
* references com.vanke.activity.act.home.MainActivity.mFragmentManager
* references android.app.FragmentManagerImpl.mActive
* references java.util.ArrayList.array
* references array java.lang.Object[].[0]
* leaks com.vanke.activity.act.home.MainFragment instance

* Reference Key: 4df07d87-564f-4530-8e77-bbcf7b13f717
* Device: HUAWEI Huawei H60-L11 H60-L11
* Android Version: 4.4.2 API: 19
* Durations: watch=5244ms, gc=133ms, heap dump=459ms, analysis=8643ms
...全文
414 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵凯强 2015-11-10
  • 打赏
  • 举报
回复
这个是leak canary 的一个BUG,但是目前只支持在21-22版本会忽略这个问题,所以你可以选择忽略

if(VERSION.SDK_INT >= 19 && VERSION.SDK_INT <= 22) {
            excluded.instanceField("android.view.inputmethod.InputMethodManager", "mNextServedView");
            excluded.instanceField("android.view.inputmethod.InputMethodManager", "mServedView");
            excluded.instanceField("android.view.inputmethod.InputMethodManager", "mServedInputConnection");
}
_deadline 2015-10-14
  • 打赏
  • 举报
回复
应该是fragment中List<...>引起的

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧