Android webview内存泄漏问题的解决

来源:互联网 发布:aphex twin 知乎 编辑:程序博客网 时间:2024/05/27 21:47

关于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()方法,退出这个虚拟机进程,这样内存就得到了回收。而其它页面在另外的进程里,是不受影响的。

原创粉丝点击