2014-11-28 2 views
1

Я использую метод Acery getCachedImage для кэширования URL-адреса изображения с моего сервера, но перед вами стоит какая-то проблема. Если я запускаю его дважды в одной и той же функции, и первый кеш будет успешным, а второй вернет значение null. Когда я закрываю эту страницу и запустить снова, и оба успешно, я хочу, чтобы убедиться, что каждый раз, когда я бегу, как от него может кэшировать изображение, ниже мой кодAquery - getCachedImage return null

boolean memCache = false; 
boolean fileCache = true; 

Bitmap dealimage = null; 
Bitmap dealimage2 = null; 

String dealImg = null; 
String dealImg2 = null; 

try { 
JSONArray jsonarray = new JSONArray(imgStr); 
for (int i = 0; i < jsonarray.length(); i++) { 

    JSONObject jobj = jsonarray.getJSONObject(i); 

    dealImg = jobj.getString("IMG1").toString(); 

    dealimage = aq.getCachedImage(dealImg); 
    System.out.println("Image : " + dealimage); 

    dealImg2 = jobj.getString("IMG12").toString(); 

    dealimage2 = aq.getCachedImage(dealImg2); 
    System.out.println(" Second Image : " + dealimage2); 
    } 
} catch (Exception e) { 
System.out.println("Error: " + e.getMessage()); 
} 

Результат LogCat

(первый раз) изображение: [email protected] Small Image: пустой

(второй раз) изображение: [email protected] Small Image: [email protected]

Я хочу, чтобы оба результата могли кэшировать в первый раз, а не во второй раз. Почему первый раз второе изображение не может быть кешем? Но во второй раз оба могут кэшировать его? Может ли кто-нибудь помочь?

ответ

0

Убедитесь, когда получите изображение из URL позволяет опции кэша:

boolean memCache = false; 
boolean fileCache = true; 

aq.id(R.id.image1).image("http://www.vikispot.com/z/images/vikispot/android-w.png", memCache, fileCache); 

Ref: http://code.google.com/p/android-query/wiki/ImageLoading

+0

Спасибо за ваш быстрый ответ, у меня есть включать как логические (Memcache = false; булева файловый кэша = истину;) при попрошайке функции, но в первый раз запустите ее, второе изображение вернет нуль, а во второй раз запустим его, и он сможет кэшировать URL-адрес. – Arzozeus

+0

@ Arzozeus, может быть, когда вы идете в первый раз, второе изображение не будет загружено в область кеша из-за медленного соединения или большего изображения. –

+0

Эти изображения всего лишь несколько килобайт, я думаю, что проблема с размером изображения или медленным подключением. Просто не знаю, почему во второй раз оба могут получить кеш, и первый раз второе изображение возвращается null – Arzozeus