2014-11-28 8 views
1

Aquery 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()); 
} 

결과 로그 캣

(처음, 그것은 모두 이미지를 캐시 할 수 있습니다, 나는 실행해야합니다 모든 시간을 만들고 싶어) 이미지 : [email protected] 작은 이미지 : 널 (null)

(두 번째) 이미지 : [email protected] 작은 이미지 : [email protected]

두 결과가 두 번째 시간 대신 처음으로 캐시 될 수 있기를 바랍니다. 두 번째 이미지를 처음으로 캐시 할 수없는 이유는 무엇입니까? 그러나 두 번째로 캐시 할 수 있습니까? 누구든지 도와 줄 수 있습니까? URL에서 얻을 이미지 캐시 옵션을 허용 할 때

답변

0

확인 :

boolean memCache = false; 
boolean fileCache = true; 

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

참고 : 귀하의 빠른 회신에 대한 http://code.google.com/p/android-query/wiki/ImageLoading

+0

감사합니다, 나는에서 Memcache = false를 모두 부울 (포함 가지고, 부울 fileCache을 = TRUE;) 함수의 구걸에 있지만 처음 그것을 실행하면 두 번째 이미지는 null을 반환하고 두 번째 나는 그것을 실행하고 그것은 URL을 캐시 할 수 있습니다. – Arzozeus

+0

@ Arzozeus, 처음 연결했을 때 느린 연결 또는 더 큰 이미지로 인해 두 번째 이미지가 캐시 영역으로 다운로드되지 않습니다. –

+0

그 이미지는 단지 몇 KB 크기로, 이미지 크기 나 느린 연결 문제는 아닌 것 같아요. 그냥 두 번째 시간이 둘 다 캐시를 ​​얻을 수있는 이유를 모르겠어요, 그리고 두 번째 이미지 반환 null – Arzozeus