集成了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);
网友评论