Désolé s'il s'agit d'une sorte de question en double. J'ai googlé pendant environ une heure mais j'ai toujours des problèmes avec l'utilisation de la mémoire du composant WebView.Fuite de mémoire WebView
Je commence une activité (NewsDetail) à partir d'un ListActivity pour afficher un article de nouvelles spécifique. Le code HTML de l'article est ajouté au WebView qui est inclus dans la mise en page de l'activité. (Il charge également 1 ou 2 images par newsDetail.loadDataWithBaseURL())
Je commence l'article Activité via:
Intent i = new Intent(getApplicationContext(), NewsDetail.class);
i.putExtra("position", position);
startActivity(i);
Après avoir lu this question, j'ai changé la mise en page afin que j'ajouter la WebView programme:
newsDetail = new WebView(getApplicationContext());
Dans ma méthode de OnDestroy est défini:
public void onDestroy(){
super.onDestroy();
newsDetail.destroy();
newsDetail = null;
finish();
System.gc();
}
Après un certain temps, le garbage collector réduit la quantité de mémoire d'environ 4 Mo à 2 Mo. Si j'ouvre/ferme plusieurs articles de nouvelles, il atteint une taille de tas critique. Comme mentionné précédemment, après avoir détruit l'activité, il reste 2 Mo à l'activité (ce qui n'existe pas si je supprime complètement le WebView du code). Il semble donc que cela ait un rapport avec le WebView lui-même. Le même problème is mentioned here.
J'ai aussi mis:
android:noHistory="true"
Quelqu'un at-vous une idée de comment se débarrasser complètement de l'utilisation de la mémoire de l'activité « Détails des Nouvelles » après son retour à mon ListActivity? Serait heureux d'entendre des idées, cela me rend fou. Existe-t-il un graphique pour les téléphones Android offrant une taille de segment de mémoire de plus de 16 Mo?