Я извлекаю много эскизов в своем приложении с удаленного сервера и лениво загружаю их в виде списка.
Захват изображения запускается в фоновом режиме AsynTask и по завершении извлеченные изображения сохраняются в HashMap с помощью SoftReferences.
Это работает отлично, но когда изображения в кеше получают GCd, необходимо выполнить повторную загрузку.
Я мог бы сохранить их на SD-карте, чтобы не было повторной выборки.
Но я не использовал этот подход из-за беспорядка, который он создавал бы на SD-карте.
Есть ли альтернативы этим сортировкам, например временные папки, которые можно очистить, когда действие/приложение заканчивается/выходит?
Что такое "идеальное место" для кэширования изображений? Любые советы, примеры проектов или указатели будут оценены.
Вы должны проверить параметры хранения файлов:
http://developer.android.com/guide/topics/data/data-storage.html
Файлы сохраняются в каталоге приложений, поэтому в любом месте нет места. Файлы будут удалены с помощью приложения. Вы также можете реализовать некоторый метод, который очистит кеш при запуске приложения (например, удалите файлы старше 2 недель).
Вы должны иметь возможность найти SQLite DB на SD-карте. Это позволит вам иметь достаточно чистый интерфейс/кеш-пространство, сохраняя данные с очень ограниченной внутренней памяти телефона. Вы можете указать местоположение БД, вызывая openOrCreateDatabase (String path, SQLiteDatabase.CursorFactory factory). Это может быть больше работы, чем вы хотели бы добавить, но вы должны быть в состоянии очистить БД, когда приложение будет выгружено с помощью строки или двух кода.
Больше из документации здесь:
http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html