WebView内存泄漏解决方案

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z2464342708m/article/details/79103780

这些天总算把项目做的差不多了,但是还有一个问题没有解决,那就是WebView内存泄漏的问题,之前销毁WebView的方案是:

if (mWebView != null) {
     mWebView.removeAllViews();
     mWebView.destroy();
}

每次启动含有WebView的页面都会有下面这个问题:
WebView内存泄漏
面对这个问题,有点不知道怎么解决,后来在简书找到了一篇博客,找到了解决方案:WebView内存泄漏解决方案 直接看方法四,具体如何解决,请看博客详情,这里我将解决方案的代码贴出:

@Override
    protected void onDestroy() {
        if (mWebView != null) {//解决webview内存泄露问题

            // 如果先调用destroy()方法,则会命中if (isDestroyed()) return;这一行代码,需要先onDetachedFromWindow(),再
            // destory()
            ViewParent parent = mWebView.getParent();
            if (parent != null) {
                ((ViewGroup) parent).removeView(mWebView);
            }

            mWebView.stopLoading();
            // 退出时调用此方法,移除绑定的服务,否则某些特定系统会报错
            mWebView.getSettings().setJavaScriptEnabled(false);
            mWebView.clearHistory();
            mWebView.clearView();
            mWebView.removeAllViews();
            mWebView.destroy();
        }

        super.onDestroy();
    }

猜你喜欢

转载自blog.csdn.net/z2464342708m/article/details/79103780