2016-09-23 2 views
1

내 프로젝트에서 유니버설 이미지 로더를 사용하고 있습니다. 이미지가 서버에서로드 된 경우 특정 작업을 수행하고 메모리 또는 디스크 캐시에서로드 된 경우 아무 작업도 수행하지 않습니다.UniversalLoader에서 이미지가로드 된 위치를 알 수있는 방법이 있습니까?

지금까지 내가 찾은 유일한 방법은 메모리와 디스크 캐시를 미리 핑핑하여 이미지가 있는지 확인하는 것입니다. 이 기능이 없다면 이미지를 표시하는 정상적인 흐름이이 검사를 반복하므로 작업을 중복하고 있습니다.

더 좋은 방법이 있나요? 코드에서 LoadedFrom 변수가 다른 내부 메소드를 통해 전달되지만 공개 API에서는 반환되지 않습니다.

답변

1

당신은 이미지 캐시 여부를 확인하려면이 코드를 사용할 수 있습니다 이미지가 메모리에 캐시되지만이 디스크에 캐시 된 경우 말해하지 않을 경우에만 말할 것이다

public static boolean checkCacheImageUri(String uri) { 
     List<String> findCacheKeysForImageUriThumbnail = MemoryCacheUtils.findCacheKeysForImageUri(
       uri, ImageLoader.getInstance().getMemoryCache()); 
     if (findCacheKeysForImageUriThumbnail != null 
       && !findCacheKeysForImageUriThumbnail.isEmpty()) { 
      return true; 
     } 
     return false; 
    } 
+0