WebView中的内存泄漏

我有一个使用嵌入WebView的xml布局进行的活动。我根本没有在活动代码中使用WebView,它所做的只是坐在xml布局中并且可见。


现在,当我完成活动时,我发现我的活动没有从内存中清除。(我通过hprof转储检查)。但是,如果我从xml布局中删除WebView,则该活动将完全清除。


我已经尝试过


webView.destroy();

webView = null;

在我的活动的onDestroy()中,但这没有太大帮助。


在我的hprof转储中,我的活动(名为“浏览器”)具有以下剩余的GC根(调用后destroy()):


com.myapp.android.activity.browser.Browser

  - mContext of android.webkit.JWebCoreJavaBridge

    - sJavaBridge of android.webkit.BrowserFrame [Class]

  - mContext of android.webkit.PluginManager

    - mInstance of android.webkit.PluginManager [Class]  

我发现其他开发人员也经历过类似的事情,请参见Filipe Abrantes的回复:http ://www.curious-creature.org/2008/12/18/avoid-memory-leaks-on-android/


确实是一个非常有趣的帖子。最近,我很难对Android应用程序中的内存泄漏进行故障排除。最后,事实证明我的xml布局包含一个WebView组件,即使不使用它,也阻止了屏幕旋转/应用重启后对内存进行g收集……这是当前实现的错误,还是存在某些问题使用WebView时需要做的特定工作


现在,很遗憾,博客或邮件列表上尚未收到有关此问题的答复。因此,我想知道是SDK中的错误(可能类似于报告http://code.google.com/p/android/issues/detail?id=2181的MapView错误)还是如何完全获取活动嵌入了Webview的内存?


侃侃尔雅
浏览 510回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP