Android: совместное использование кеша изображений среди действий

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

Пример:

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

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


person tsr    schedule 07.02.2011    source источник
comment
почему бы не выложить образы на sd карту?   -  person androidworkz    schedule 07.02.2011


Ответы (1)


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

application android: name = "MyApplication" (...)

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

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

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

Изменить: не забудьте создать свое «Мое приложение» следующим образом:

открытый класс MyApplication расширяет приложение

person Rui Peres    schedule 07.02.2011
comment
Спасибо. Ключевым моментом было расширение задачи приложения. - person tsr; 09.02.2011