Извините, если это какой-то дублирующий вопрос. Я гуглял около часа, но все еще возникают проблемы с использованием памяти компонентом WebView.
Я запускаю Activity (NewsDetail) из ListActivity, чтобы отобразить конкретную новостную статью. HTML-код статьи добавляется в WebView, который включен в макет Activity. (он также загружает 1 или 2 изображения через newsDetail.loadDataWithBaseURL () )
Я начинаю статью Активность через:
Intent i = new Intent(getApplicationContext(), NewsDetail.class);
i.putExtra("position", position);
startActivity(i);
После прочтения этого вопроса я изменил свой макет так, чтобы добавить программный WebView:
newsDetail = new WebView(getApplicationContext());
В моем методе onDestroy установлено:
public void onDestroy(){
super.onDestroy();
newsDetail.destroy();
newsDetail = null;
finish();
System.gc();
}
Через некоторое время сборщик мусора уменьшит объем памяти примерно с 4 МБ до 2 МБ. Если я открываю / закрываю несколько новостных статей, он достигает критического размера кучи. : /
Как уже упоминалось, после уничтожения действия, оставшемуся 2 МБ осталось для действия (которого не будет, если я полностью удалю WebView из кода). Так что, похоже, что это связано с самим WebView.
Здесь упоминается та же проблема .
Я также установил:
android:noHistory="true"
Кто-нибудь из вас задумывался, как полностью избавиться от использования памяти в "NewsDetail" Activity после возвращения к моей ListActivity?
Был бы рад услышать любые идеи, это сводит меня с ума. Существует ли диаграмма для телефонов Android с размером кучи более 16 МБ?