2009-12-30 3 views
1

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

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

Это работает отлично, но когда изображения в кеше получают GC'd, выборки должны быть повторно запущены.

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

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

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

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

ответ

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

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