您的位置:首页 > 移动开发

Android webview内存泄漏问题的解决

2017-06-27 14:49 232 查看
关于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是处于另一个进程的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息