温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

WebView 避免内存泄露的方法

发布时间:2020-06-08 18:51:25 来源:网络 阅读:4614 作者:zhf651555765 栏目:移动开发

最近遇到一个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

向AI问一下细节
推荐阅读:
  1. WebView Demo
  2. WebView研究

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI