美文网首页开发小技巧webview
Android如何避免WebView内存泄漏

Android如何避免WebView内存泄漏

作者: 柏林billy | 来源:发表于2018-08-09 19:47 被阅读807次

    Android如何避免WebView内存泄漏

    • 什么是内存泄漏

    内存泄漏通俗的讲就是你创建了一个对象,却没有在合适的时候销毁他,他一直存在在内存中耗费了内存空间.

    • 1.代码中创建WebView

    1. 如果是Xml创建的通过findViewById()加载的webView会一直存在,不能对其进行销毁
    2. 所以我们因该在代码中创建webView代码如下

    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //创建一个LayoutParams宽高设定为全屏
            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
            //创建WebView
            mWebView = new WebView(getApplicationContext());
            //设置WebView的宽高
            mWebView.setLayoutParams(layoutParams);
            //把webView添加到容器中
            mLayout.addView(mWebView);
        }
    
    • 2.代码中销毁WebView

    1. 我们在代码中去创建webView就是为了方便之后在代码中对其进行销毁
    2. 一般是在Activity销毁的时候,先把WebView加载Null内容,然后移除webView再销毁webView,最后置空,代码如下

    @Override
    protected void onDestroy() {
        if (mWebView != null) {
            //加载null内容
            mWebView.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);
            //清除历史记录
            mWebView.clearHistory();
            //移除WebView
            ((ViewGroup) mWebView.getParent()).removeView(mWebView);
            //销毁VebView
            mWebView.destroy();
            //WebView置为null
            mWebView = null;
        }
         super.onDestroy();
    }

    相关文章

      网友评论

        本文标题:Android如何避免WebView内存泄漏

        本文链接:https://www.haomeiwen.com/subject/irncbftx.html