之前使用LeakCanary工具定位内存问题时候,发现系统输入法的内存泄漏,网上也有挺多解决方案,如下这篇算是比较好的几种方案的集合。
https://zhuanlan.zhihu.com/p/20828861?refer=zmywly8866
在项目中,通过阅读源码,最终采用了一种文章没提到的方案,暂时未发现有什么问题,纪录下,方便后续查阅。
在 activity 的 onDestroy 方法中加入如下代码即可。
//Fix memory leak: http://code.google.com/p/android/issues/detail?id=34731
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
try {
InputMethodManager.class.getDeclaredMethod("windowDismissed", IBinder.class).invoke(imm,
getWindow().getDecorView().getWindowToken());
} catch (Exception e){
e.printStackTrace();
}
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。