Android webview内存泄漏问题的解决

关于webview导致内存泄漏的问题,网上讨论很多,这是Android的一个Bug。

关于原理分析,可以看看前人的博客:
http://blog.csdn.net/u013571833/article/details/53070236

有人提出方法:webView不要写在xml布局文件里,要在代码中动态添加然后加载网页,然后页面销毁的时候移除并销毁webView就不会导致内存泄漏。但是也存在弊端:这样加载的网页不能很好的实现用户的交互。

下面的文章中给出了一个比较简单易用的方案,亲测可用,只需两步:
https://my.oschina.net/zhibuji/blog/100580
1. 在manifest文件中给webView所在的activity加上android:process属性,例如:

        <activity
            android:process="com.myapp.webprocess"
            android:name=".activity.WebActivity" />

2 . 在webView所在的activity的onDestroy()方法中加上如下代码:

System.exit(0);

这样就可以解决内存泄漏了。

原理是,将webView所在的页面设置为一个单独的进程,当页面销毁时,会调用System.exit()方法,退出这个虚拟机进程,这样内存就得到了回收。而其它页面在另外的进程里,是不受影响的。

注意:这样做带来的一个负面影响是:打开这个带有webview的activity会比其他activity慢一点,因为这个activity是处于另一个进程的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值