android webview内存泄漏,WebView 避免内存泄露的方法

最近遇到一个Webview内存泄露的问题,上网查了一些结果,在此记录一下:

webview在android系统中属于一个比较特殊的view,在调用

webview.destroy()的时候,必须确保webview已经从view

tree中被删除,否则这个函数不会执行的。如本app中的用法,在xml中静态定义的webview,只有在整个view退出后调用

webview.destroy()才会被正确执行,但整个view退出后又找不到webview了,这个是很矛盾的。

所以android给出的解决方案是,不要在xml中定义webview,在xml中只定义view,然后在需要webview的时候,创建一个webview,并把webview放到定义好的view的位置。

在删除得的时候,先把webview从parent view中删除,然后释放,就不会有问题了。

在应用层修改如下:

WebView    mWebView = new WebView(getApplicationgContext());

LinearLayout mll  = findViewById(R.id.xxx);

mll.addView(mWebView);

protected void onDestroy() {

super.onDestroy();

mll.removeView(wv);  //从布局中移除webView

mWebView.removeAllViews();

mWebView.destroy()

}

参考资料:http://my.oschina.net/zhibuji/blog/100580

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值