Каково идеальное место для кэширования изображений?

1

Я извлекаю много эскизов в своем приложении с удаленного сервера и лениво загружаю их в виде списка.

Захват изображения запускается в фоновом режиме AsynTask и по завершении извлеченные изображения сохраняются в HashMap с помощью SoftReferences.

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

Я мог бы сохранить их на SD-карте, чтобы не было повторной выборки.

Но я не использовал этот подход из-за беспорядка, который он создавал бы на SD-карте.

Есть ли альтернативы этим сортировкам, например временные папки, которые можно очистить, когда действие/приложение заканчивается/выходит?

Что такое "идеальное место" для кэширования изображений? Любые советы, примеры проектов или указатели будут оценены.

Теги:
performance
lazy-loading

2 ответа

5
Лучший ответ

Вы должны проверить параметры хранения файлов:
http://developer.android.com/guide/topics/data/data-storage.html
Файлы сохраняются в каталоге приложений, поэтому в любом месте нет места. Файлы будут удалены с помощью приложения. Вы также можете реализовать некоторый метод, который очистит кеш при запуске приложения (например, удалите файлы старше 2 недель).

0

Вы должны иметь возможность найти SQLite DB на SD-карте. Это позволит вам иметь достаточно чистый интерфейс/кеш-пространство, сохраняя данные с очень ограниченной внутренней памяти телефона. Вы можете указать местоположение БД, вызывая openOrCreateDatabase (String path, SQLiteDatabase.CursorFactory factory). Это может быть больше работы, чем вы хотели бы добавить, но вы должны быть в состоянии очистить БД, когда приложение будет выгружено с помощью строки или двух кода.
Больше из документации здесь: http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню