场景
xml中使用com.tencent.smtt.sdk.WebView时,频繁进入退出,报出CommodityDetailActivity中的mFragments存在内存泄露。
分析
实际代码中CommodityDetailActivity类中,我自己没有用到mFragments,所以怀疑使用到的第三方搞的鬼,而这个页面第三方, 就有个腾讯的WebView。所以也就怀疑是这个问题了。把webview去掉后,发现也不报内存泄露了。
解决方式
onDestroy方法中添加如下代码
@Override
protected void onDestroy() {
try{
if (webView != null) {
webView.stopLoading();
webView.removeAllViewsInLayout();
webView.removeAllViews();
CookieSyncManager.getInstance().stopSync();
webView.destroy();
webView = null;
}
}catch (Throwable throwable){
throwable.printStackTrace();
} finally {
super.onDestroy();
}
}
super.onDestroy(); 要放在方法体最后,不要放在第一行。