WebView内存泄漏修复

来源:互联网 发布:用友加密狗提取数据 编辑:程序博客网 时间:2024/06/05 04:12

Android 5.0以后WebView的destory方法不能够完全的将webview占用的内存清理掉。这里需要在Activity的onDestory方法中先行将webView从组件中移除

    @Override    protected void onDestroy() {        if (mWebPreviewH5Info != null) {            // 如果先调用destroy()方法,则会命中if (isDestroyed()) return;这一行代码,需要先onDetachedFromWindow(),再            // destory()            ViewParent parent = mWebPreviewH5Info.getParent();            if (parent != null) {                ((ViewGroup) parent).removeView(mWebPreviewH5Info);            }            mWebPreviewH5Info.stopLoading();            // 退出时调用此方法,移除绑定的服务,否则某些特定系统会报错            mWebPreviewH5Info.getSettings().setJavaScriptEnabled(false);            mWebPreviewH5Info.clearHistory();            mWebPreviewH5Info.clearView();            mWebPreviewH5Info.removeAllViews();            try {                mWebPreviewH5Info.destroy();            } catch (Throwable ex) {            }        }        super.onDestroy();    }