Проблема с кешем изображений на Android - PullRequest
0 голосов
/ 26 сентября 2010

Как и многие другие, я использую Map и SoftReference для создания кэша изображений для кэширования загруженного изображения.

В моей реализации последнее использованное растровое изображение будет помещено в первый элемент Map, поэтому, когда кэш изображений достигнет максимального размера, последний элемент Map, который долгое время не используется, будет удален, и SoftReference гарантирует, что растровое изображение будет переработано.

Вот проблема: как я могу быть уверен, что удаленное растровое изображение не используется (например, рисование на экране и т. Д.), Когда оно перерабатывается. Если растровое изображение используется, SoftReference GC это? Действительно трудно понять, что означает «достижимость» в API doc .

Заранее спасибо!

1 Ответ

1 голос
/ 26 сентября 2010

Если оно используется чем-то иным, чем ваш SoftReference в кеше, то оно, безусловно, используется с жесткой ссылкой (то есть с любой переменной или членом класса).Тогда GC не будет перерабатывать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...