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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章