WXApiImplV10.activityCb内存泄漏处理
【WXApiImplV10.activityCb内存泄漏处理】集成了LeakCanary对APP进行内存泄漏监控后,发现有一个WXApiImplV10.activityCb这样的日志,是在登录页面发生的。
文章图片
image.png 产生的原因
在发生此种问题的地方,你一定可以找到这样的代码,而且你对IWXAPI并不陌生。是的,这是微信的sdk。
IWXAPI wxapi = WXAPIFactory.createWXAPI(this, Constants.APP_ID,
false);
目前流行的应用都少不了三方登录,分享,当然都集成了微信的sdk,IWXAPI初始化的时候将context传进去了,看到这里别以为是微信的锅,是我们自己没调用销毁的方法。
解决方法 1.其实很简单,只需要在onDestroy()中调用wxapi.detach();
@Override
protected void onDestroy() {
if(wxapi != null){
//微信api释放
wxapi.detach();
}
super.onDestroy();
}
2.当然还有第二个方案,context传入Application微信也是支持的(还有的wxapi直接在Application中声明创建,整个app都用一个wxapi)
WXAPIFactory.createWXAPI(this.getApplicationContext(), Constants.APP_ID,
false);
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Java内存泄漏分析系列之二(jstack生成的Thread|Java内存泄漏分析系列之二:jstack生成的Thread Dump日志结构解析)
- iOS内存对齐原则
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 内存管理概念与原理以及解决办法
- c语言|一文搞懂栈(stack)、堆(heap)、单片机裸机内存管理malloc
- C语言学习(bit)|16.C语言进阶——深度剖析数据在内存中的存储
- 内存管理
- Java内存溢出及解决
- js类型转换和内存