文章目录

1、内存泄漏的原因2、如何避免3、参考资料

1、内存泄漏的原因

参考资料:内存泄漏原因

2、如何避免

方式一:不在 xml 中定义 Webview ,这样会引用 Activity,而是在需要的时候在 Activity 中创建,并且使用 getApplicationgContext()

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);

mWebView = new WebView(getApplicationContext());

mWebView.setLayoutParams(params);

mLayout.addView(mWebView);

方式二:Activity 关闭时需要手动释放 Webview 内存在 Activity 销毁(WebView)的时候,先让 Webview 加载 null 内容,然后移除 Webview,再销毁 Webview,最后置空。

@Override

protected void onDestroy() {

if (mWebView != null) {

mWebView.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);

mWebView.clearHistory();

((ViewGroup) mWebView.getParent()).removeView(mWebView);

mWebView.destroy();

mWebView = null;

}

super.onDestroy();

}

方式三:在承载 WebView 的 Activity 中,单开一个进程去处理。但是这里要牵扯到进程之间的通信。

3、参考资料

Android webview 内存泄露的解决方法WebView内存泄漏–解决方法小结

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: