Изтеглям изображения от сървъра в ListView
и ги съхранявам в SD карта.
И когато следващия път се появи listview, имам достъп до него от SD карта само чрез Async метод, използвам този подход, така че всеки потребител да не се нуждае от достъп до сървъра.
Но когато всички изображения се зареждат в изглед на списък от SD карта и ако го превъртя доста бързо, тогава всеки път, когато се опитва да получи достъп до него само от SD картата, а не от кешовете, предполагам.
Сблъсках се със същия проблем, когато изображенията се изтеглят от сървъра, и затова реших да го съхраня в SD карта. но аз съм изправен пред същия проблем.
ето моят код ListImageDownloader. В това има функция, наречена downloadBitmap(String)
и създадох друга функция, наречена downloadSDBitmap(String)
, чийто код е както следва
Bitmap downloadSDBitmap(String urlId) {
Bitmap bitmap = null;
File file = new File(
fileLoc +"/"+ urlId+".png");
if(file.exists()){
Log.d("PATH" , file.getAbsolutePath());
bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
}
return bitmap;
}
освен това целият кеширащ код и всички са еднакви. така че може ли някой да ми помогне как мога да го подобря, тъй като в Gtalk
приложение за Android, когато превъртам бързо, зарежда изображенията само веднъж, след което, ако превъртя бързо, изображенията остават такива, каквито са и не се извличат от мрежата
Актуализация
това са моите параметри
final static int MAX_ENTRIES = 150;
private static final int HARD_CACHE_CAPACITY =50;
private static final int DELAY_BEFORE_PURGE = 10 * 1000; // in milliseconds