Another test with little modification shows: when I create the WebView
programatically and set the activity ('this') as the context, the
activity would still remain in memory. When I use
getApplicationContext() though, it's ok and the activity get's removed
without any kept references.
Filed a bug report at:
http://code.google.com/p/android/issues/detail?id=9375
On 29.06.2010 12:55 PM, Mathias Lin wrote:
I have an activity using an xml layout where a WebView is embedded. I
am not using the WebView in my activity code at all, all it does is
sitting there in my xml layout.Now, when I finish the activity, I find
that my activity is not being cleared from memory. (I check via hprof
dump). The activity is entirely cleared though if I remove the WebView
from the xml layout.
I already tried a
webView.destroy();
webView = null;
in onDestroy() of my activity, but that doesn't help much.
In my hprof dump, my activity (named 'Browser') has the following
remaining GC roots (after having called destroy() on it):
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]
I found that another developer has experienced similar thing, see the
reply of Filipe Abrantes
on:http://www.curious-creature.org/2008/12/18/avoid-memory-leaks-on-android/
: "Indeed a very interesting post. Recently I had a very hard time
troubleshooting a memory leak on my Android app. In the end it turned
out that my xml layout included a WebView component that, even if not
used, was preventing the memory from being g-collected after screen
rotations/app restart… is this a bug of the current implementation, or
is there something specific that one needs to do when using
WebViews"Now, unfortunately there has been no reply on the blog or the
mailing list about this question yet. Therefore I am wondering, is
that a bug in the SDK (maybe similar to the MapView bug as
reportedhttp://code.google.com/p/android/issues/detail?id=2181) or how
to get the activity entirely off the memory with a webview embedded?(I
noted a similar thread on the mailing list from last year, but
unfortunately never an answer to
it;http://groups.google.com/group/android-developers/browse_thread/thread/81312866cb21ec76/6d2fb24980aa71a3?lnk=gst&q=webview+xml+memory#6d2fb24980aa71a3
<http://groups.google.com/group/android-developers/browse_thread/thread/81312866cb21ec76/6d2fb24980aa71a3?lnk=gst&q=webview+xml+memory#6d2fb24980aa71a3>)
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en