2011-02-07 2 views
3

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

Пример:

Применение имеет 3 деятельности (А, В и С) и в качестве аргумента позволяет сказать, что А вызывает В и В вызывают С и С вызывают A. Каждое действие отображает изображение, загруженное с в сети, и я использую asynctask для загрузки и отображения изображений с каждым действием - достаточно просто. Теперь я хотел бы добавить кеш изображения, чтобы избежать нескольких загрузок одного и того же изображения.

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

+0

почему бы не поставить изображения на SD-карта? – androidworkz

ответ

2

Вы можете добавить это манифест приложения:

приложение андроид: имя = "MyApplication" (...)

Вы можете создать класс, который имеет название " Мое заявление". Затем вы можете использовать этот класс в своих действиях. Перед выполнением асинхронного вызова проверьте, если у вас уже есть правильное изображение. Если у вас есть, вы используете один «кэшированный», если нет, вы можете получить новый. Вы можете попробовать что-то вроде этого (в этом случае, чтобы получить некоторые случайные строки):

ArrayList myStrings = ((MyApplication) this.getApplication()) getRandomStrings();.

Надеюсь, это вам помогло. :)

Edit: Не забудьте к создать свой "MyApplication", как это:

общественного класса MyApplication расширяет вку

+0

Спасибо. Ключ должен был расширить задачу приложения. – tsr

+0

Если вы восприняли мой ответ, отметьте его. :) – Peres

Смежные вопросы