Я хотел задать этот вопрос, который задавался несколько раз раньше.Извините, если я повторяю итерации, но мне неясно, что является лучшим решением здесь.
Вопрос в том, «как очистить растровый ресурс ImageView после его использования, чтобы у нас не было ссылокв память? ".
Вот пример:
- Экран 1 перенаправляет на экран 2
- Экран 2 содержит элемент управления A (предварительный просмотр большого фото)
- Элемент управления A содержит ImageView B
- Настройка ImageView B устанавливается при запуске элемента управления A
В первый раз все работает нормально.Как только элемент управления завершен, я перенаправляю с экрана 2 на экран 1. На этом этапе все ссылки на элемент управления A или ImageView B или растровое изображение, которые он использует, должны быть недействительными.ОНИ НЕ !!!
Я пробовал все виды решений, включая bitmap.recycle (), добавление finalize () в Control A, System.gs () и обнуление элемента управления в различных местах, таких как onStop () и onDestroy (), и все остальное, что на экране 2, ничего не работает!
Проблема в том, что, когда я снова посещаю экран, переходя с экрана 1 на экран 2 (т. Е. Снова создавая предварительный просмотр фотографии), я получаю исключение из памяти.Насколько я понимаю, ссылка на предыдущее растровое изображение не очищена.
Как убить его перед тем, как перенаправить обратно на экран 1?
Одна вещь, которую я заметил.Если я уменьшу размер фотографии, скажем, обрезая или уменьшив размер изображения, все пройдет гладко, несколько раз ... прежде чем я получу ту же проблему.В общем, заполнение занимает чуть больше времени.
Я бы очень признателен за какое-то решение здесь, так как это очень важно.