我有一個使用嵌入了WebView的xml佈局的活動。我沒有在我的活動代碼中使用WebView,它只是坐在我的xml佈局中並且可見。WebView中的內存泄漏
現在,當我完成活動時,我發現我的活動沒有從內存中清除。 (我通過hprof轉儲檢查)。如果我從xml佈局中刪除WebView,該活動完全清除。
我已經在自己的活動的onDestroy()嘗試了
webView.destroy();
webView = null;
,但不會有什麼幫助。
在我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佈局包括網頁視圖 組件,即使不使用,是 防止存儲器被 G-收集......這是當前 的錯誤實現,或者是有一些具體的事情 一個需要做的時候 使用網頁視圖
現在,不幸的是出現了關於這個問題的博客或郵件列表沒有答覆呢。因此,我想知道,是SDK中的錯誤(可能類似於報告的http://code.google.com/p/android/issues/detail?id=2181的MapView錯誤)或如何使用webview嵌入式內存完全關閉內存活動?
如果您動態創建WebView,會發生這種情況嗎? – ktingle 2010-06-28 08:40:50
我剛剛測試過,但沒有什麼區別。 – 2010-06-28 10:55:55
同時,我在http://code.google.com/p/android/issues/detail?id=9375上提交了一個錯誤報告,但也許有人對此有一個解決方法;那麼請張貼它。 – 2010-06-28 11:03:48