WebView 避免内存泄露的方法

简介:

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




     本文转自zhf651555765 51CTO博客,原文链接:http://blog.51cto.com/smallwoniu/1841012,如需转载请自行联系原作者


相关文章
|
1月前
|
存储 缓存 Java
嵌入式系统中C++内存管理基本方法
嵌入式系统中C++内存管理基本方法
81 0
|
5月前
|
Java Linux 程序员
Linux平台中调试C/C++内存泄漏方法 (腾讯和MTK面试的时候问到的)
Linux平台中调试C/C++内存泄漏方法 (腾讯和MTK面试的时候问到的)
|
6月前
|
存储 搜索推荐 Serverless
用指针和动态内存分配的方法输入10,2,30, 4,5,按输入顺序逆置排序,输出排序后的元素,即输出5,4,30,2,10
用指针和动态内存分配的方法输入10,2,30, 4,5,按输入顺序逆置排序,输出排序后的元素,即输出5,4,30,2,10
29 0
|
6月前
|
存储 C语言 C++
C语言之数据的存储2(浮点数在内存中如何存储,如何输出,查看不同类型数据在内存中表示的范围的方法,十进制浮点数转化为二进制的方法)
C语言之数据的存储2(浮点数在内存中如何存储,如何输出,查看不同类型数据在内存中表示的范围的方法,十进制浮点数转化为二进制的方法)
|
16天前
|
存储 缓存 监控
深入解析linux内存指标:快速定位系统内存问题的有效技巧与实用方法(free、top、ps、vmstat、cachestat、cachetop、sar、swap、动态内存、cgroops、oom)
深入解析linux内存指标:快速定位系统内存问题的有效技巧与实用方法(free、top、ps、vmstat、cachestat、cachetop、sar、swap、动态内存、cgroops、oom)
|
30天前
|
存储 安全 编译器
C++智能指针:更简单、更高效的内存管理方法
C++智能指针:更简单、更高效的内存管理方法
12 0
|
1月前
|
人工智能 自然语言处理 物联网
极大降低大模型训练内存需求,Meta等推出高效方法
【2月更文挑战第27天】极大降低大模型训练内存需求,Meta等推出高效方法
27 2
极大降低大模型训练内存需求,Meta等推出高效方法
|
5月前
|
存储 编译器 Linux
解密Linux内核神器:内存屏障的秘密功效与应用方法(下)
解密Linux内核神器:内存屏障的秘密功效与应用方法(下)
|
3月前
|
存储 搜索推荐 Serverless
用指针和动态内存分配的方法输入10,2,30, 4,5,按输入顺序逆置排序,输出排序后的元素,即输出5,4,30,2,10
用指针和动态内存分配的方法输入10,2,30, 4,5,按输入顺序逆置排序,输出排序后的元素,即输出5,4,30,2,10
18 0
|
3月前
|
存储 缓存 Java
嵌入式系统中C++内存管理基本方法
嵌入式系统中C++内存管理基本方法
60 0