开发小技巧webview

Android如何避免WebView内存泄漏

2018-08-09  本文已影响807人  柏林billy

Android如何避免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);
    }

  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();
}
上一篇下一篇

猜你喜欢

热点阅读