如何避免WebView内存泄漏

第一步:不在xml布局文件中定义Webview,在需要的时候在Activity中创建,并且Context使用getApplicationContext()。

frameLayout = (FrameLayout)findViewById(R.id.container);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
mWebView = new WebView(getApplicationContext());
mWebView.setLayoutParams(layoutParams);
frameLayout.addView(mWebView);

2. 在Activity 销毁时,先让 WebView 加载null内容,然后移除 WebView,再销毁WebView,最后置空。

@Override
 protected void onDestroy() {
    if(mWebView != null){
        mWebView.loadDataWithBaseURL(null,"","text/html","utf-8",null);
        // 设置为true,会清掉本地缓存的文件, 我设置为false
        mWebView.clearCache(false);
        // 清除历史记录
        mWebView.clearHistory();
        ((ViewGroup)mWebView.getParent()).removeView(mWebView);
        mWebView.destroy();
        mWebView = null;
        }
        super.onDestroy();
    }

谢谢围观

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值