WXApiImplV10.activityCb内存泄漏处理

【WXApiImplV10.activityCb内存泄漏处理】集成了LeakCanary对APP进行内存泄漏监控后,发现有一个WXApiImplV10.activityCb这样的日志,是在登录页面发生的。

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);

    推荐阅读