解决webview内存泄漏问题

在项目中遇到需要使用webview来显示一些内容的情况,在整体测试内存泄漏的时候发现这个webview存在内存泄漏的问题.仔细排查了之后,作者在activity销毁的时候调用了webview的destory并且置为了空,然后继续测试,竟然没有任何效果.后来通过在网上查找资料,算是解决了这个webview的内存泄漏的问题, 参考博客:
http://my.oschina.net/zhibuji/blog/100580(有更详细的解决方案,建议看看)

首先将xml中的webview替换成LinearLayout或者别的控件,在代码中动态地将webview设置到LinearLayout中:

`ll_webview.addView(webView);`

在Activity的onDestory中销毁webview

webView.removeAllViews();
        webView.destroy();
        webView = null;

通过这些设置,使用leaks暂时没有再发现内存泄漏的情况.

最后顺便记录一下,在webview使用过程中遇到问题:
已经为webview设置自适应屏幕,但是加载的图片仍然比屏幕大很多,解决方案是:
在webview需要加载的html字符串之前加入为图片加上如下style.

String head = "<style>img{max-width:100%;height:auto;<span id=\"transmark\">}style>";

如果存在乱码问题,可参考一下设置

webView.loadData(head + content, "text/html; charset=UTF-8", null);

关于博客中的内容有任何疑问欢迎加群讨论:283272067

你可能感兴趣的:(Android)