Android InputMethodManager 导致的内存泄露及解决方案
2017-07-22 13:11
1106 查看
今天在使用LeakCanary检查应用的内存泄露时,报了一个这样的错误,并且还给出了参考链接,原来这是Android输入法的一个bug,在SDK_INT < KITKAT || SDK_INT > 23中都存在。
LeakCanary之所以能够显示参考链接是因为它有一个针对SDK已知内存泄露的列表,放在AndroidExcludedRefs.java[/i]中,比如输入法的这个。
这个问题很多人都遇到过,网上已经有比较成熟的方案,分析原因比较透彻的是这篇文章:[Android][Memory Leak] InputMethodManager内存泄露现象及解决[/i],改善方案可以参考Leaknary给出的方案:InputMethodManager内存泄露修正方案[/i],在自定义的Application的onCreate方法调用fixFocusedViewLeak方法即可解决。
解决方案源码:https://gist.github.com/pyricau/4df64341cc978a7de414#file-immleaks-java-L137
注意:1.SDK_INT < KITKAT || SDK_INT > 23;2.在合适的地方调用fixFocusedViewLeak方法.可以在Application或者Activity的onCreate方法调用
转载地址:https://zhuanlan.zhihu.com/p/20828861
LeakCanary之所以能够显示参考链接是因为它有一个针对SDK已知内存泄露的列表,放在AndroidExcludedRefs.java[/i]中,比如输入法的这个。
这个问题很多人都遇到过,网上已经有比较成熟的方案,分析原因比较透彻的是这篇文章:[Android][Memory Leak] InputMethodManager内存泄露现象及解决[/i],改善方案可以参考Leaknary给出的方案:InputMethodManager内存泄露修正方案[/i],在自定义的Application的onCreate方法调用fixFocusedViewLeak方法即可解决。
解决方案源码:https://gist.github.com/pyricau/4df64341cc978a7de414#file-immleaks-java-L137
注意:1.SDK_INT < KITKAT || SDK_INT > 23;2.在合适的地方调用fixFocusedViewLeak方法.可以在Application或者Activity的onCreate方法调用
转载地址:https://zhuanlan.zhihu.com/p/20828861
相关文章推荐
- Android InputMethodManager 导致的内存泄露及解决方案
- Android InputMethodManager 导致的内存泄露及解决方案
- Android InputMethodManager 导致的内存泄露
- InputMethodManager导致的内存泄漏
- 处理 InputMethodManager 内存泄露的正确姿势
- [置顶] android内存泄漏总结(总结所有导致内存泄露的可能性及解决方案)
- Android Handler当做内部类,导致内存泄露的问题解决方案
- Android InputMethodManager 内存泄漏解决方案
- Android软键盘学习InputMethodManager!
- Android性能优化:手把手带你全面了解 内存泄露 & 解决方案
- android开发中,可能会导致内存泄露的问题
- Android性能优化:手把手带你全面了解 内存泄露 & 解决方案
- 加载webView 内存泄露 导致内存暴涨的几种解决方案
- Android中Handler导致的内存泄露
- android 软键盘 InputMethodManager
- Android 3.0 r1中文API文档 InputMethodManager
- Android 非静态内部类导致的内存泄露(非static内部类)
- android 软键盘 InputMethodManager
- Android-Fragment中TextView.setFocusable(true)导致的内存泄露
- Android InputMethodManager输入法简介