WebView内存泄露终结解决方案

但凡是做Android开发的相信都对webview不会陌生,而且也对系统自带的webview本身存在的问题也是怨念很久了,一方面是本身对js的支持不是很好另外一方面就是经常被人诟病的内存泄露了。

不知道各位遇到同样问题的朋友是怎么解决的,网上也有很多解析和方案但至少在我的项目中是没任何效果的,今天我就分享一下我最终是怎么解决这些问题的(其实是很蠢的一个办法)。

需求背景:

需要一个带有加载进度条的webview来正常的显示合作方和自己的web页面。

1、解决webview对一些js的支持:

用JsBridge代替系统原生的webview,
github地址:https://github.com/lzyzsd/JsBridge

2、解决webview内存泄露:

@Bind(R.id.pb)
    ProgressBar pb;
    @Bind(R.id.mWebView)
    BridgeWebView mWebView;

    pb.setMax(100);
    mWebView.setWebChromeClient(new WebViewClient());
    mWebView.loadUrl(strWebsite);

    private class WebViewClient extends WebChromeClient {
        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            try {
                pb.setProgress(newProgress);
                if (newProgress == 100) {
                    pb.setVisibility(View.GONE);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            super.onProgressChanged(view, newProgress);
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        try {
            if (mWebView != null) {
                mWebView.removeAllViews();
                mWebView.destroy();
                mWebView = null;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

最后介绍大家一个用来检测应用内存泄露的工具:leakcanary


github地址:https://github.com/square/leakcanary


FullStackEngineer的公众号,更多分享
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,069评论 25 709
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,610评论 2 45
  • 为什么你要成为所谓“精英”?因为如果你不勤奋刻苦、不每天在知识和能力上进步、不完成精致优秀的成果,你会良心不安。你...
    夜小白Aria阅读 480评论 0 2
  • 姓名:顾君 单位:宁波大发化纤有限公司 学习组:第234期努力一组 【日精进打卡第103天】 【知~学习】 《六项...
    JASONGU_2f28阅读 135评论 0 0
  • 王冬向苏纯一详细讲述了事情的来龙去脉。苏纯一听完王冬的讲述,皱着眉头陷入了沉思。过了许久,苏纯一站起身来,对王冬说...
    星空下的蜗牛阅读 327评论 0 0