SoftReference собирает мусор слишком рано

Я нахожусь на пути к реализации механизма кэширования для моего приложения Android.

Я использую SoftReference , как и многие примеры, которые я нашел. Проблема в том, что когда я прокручиваю вверх или вниз в моем ListView , большинство изображений уже очищаются. В LogCat я вижу, что мое приложение собирает мусор каждый раз, когда приложение загружает новые изображения. Это означает, что большинство невидимых изображений в ListView исчезли.

Итак, каждый раз, когда я прокручиваю назад до более ранней позиции (где я действительно загружал изображения раньше), мне приходится загружать изображения еще раз - они не кэшированы .

Я Я тоже исследовал эту тему. Согласно Марку Мерфи в этой статье , похоже, что есть (или была?) Ошибка с SoftReference . Некоторые другие результаты указывают на то же самое (или на тот же результат); SoftReference очищаются слишком рано.

Есть ли какое-либо рабочее решение?

10
задан Wroclai 19 August 2012 в 20:11
поделиться