J'ai une activité à l'aide d'un xml disposition où une WebView est intégré. Je ne suis pas à l'aide de la WebView dans mon code d'activité à tous les, tous les il n'est assis là, dans mon xml de mise en page et d'être visible.
Maintenant, quand j'ai fini de l'activité, je trouve que mon activité n'est pas effacé de la mémoire. (J'ai vérifier, via hprof dump). L'activité est entièrement effacé mais si je retire la WebView de la mise en page xml.
J'ai déjà essayé un
webView.destroy();
webView = null;
dans onDestroy() de mon activité, mais qui ne l'aide pas beaucoup.
Dans mon hprof de vidage, de mon activité (appelé "Navigateur") a la suite reste GC racines (après les avoir appelés 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]
J'ai trouvé un autre développeur a connu chose de similaire, voir la réponse de Filipe Abrantes: http://www.curious-creature.org/2008/12/18/avoid-memory-leaks-on-android/
En effet, un post très intéressant. Récemment, j'ai eu un moment très difficile dépannage d'une fuite de mémoire sur mon Android app. En fin de compte il s'est avéré que mon xml de mise en page inclus une WebView composant qui, même si pas utilisé, a été la prévention de la mémoire de g-recueillies après l'écran de rotations/app redémarrer... est-ce un bug de l'actuel la mise en œuvre, ou est-il quelque chose spécifiques que l'on doit faire quand à l'aide de WebViews
Maintenant, malheureusement, il n'y a pas eu de réponse sur le blog ou la liste de diffusion à propos de cette question. Donc je me demandais, est-ce un bug dans le kit de développement (peut-être similaire à la MapView bug comme indiqué http://code.google.com/p/android/issues/detail?id=2181) ou comment faire pour obtenir l'activité entièrement hors de la mémoire avec une webview intégré?