解决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\"></span>}</style>";

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

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

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

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值