2014-01-18 2 views
3

나는 "Android universal image loader library (v 1.9.1)"을 사용하고 있는데 제가 설정 빌더이 줄을 사용하여 사용 (디스크) 캐시의 양을 제한하기 위해 노력하고있어 :android universal image loader에 대해 제한된 캐시를 올바르게 구성하려면 어떻게해야합니까?

.discCache(new TotalSizeLimitedDiscCache(cacheDir, 25 * 1024 * 1024)) 
여기 정말 바보 같은 일을 할 수

하지만, 이것은 내 캐시를 25MB로 제한하기로되어 있었고 현재 App 정보를 볼 때 이미 45MB 이상 이었으므로 작동하지 않는 것 같습니다.

내가 놓친 것이 있습니까?

덧글 : 캐시 번호에도 true로 설정된 'memorycache'가 포함되어 있으면 어떻게 될까요? 나는이 가정하에 일하고있다. 캐시는 단지 imageLoader이고, 응용 프로그램/os 관점에서는 메모리를 사용하는 또 다른 관점이다. 그렇지 않다면 숫자를 설명 할 수 있을까요? 초기화

전체 코드 :

private void initImageLoader() { 
    DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder() 
     .cacheInMemory(true) 
     .cacheOnDisc(true) 
     .build();  

    File cacheDir = StorageUtils.getCacheDirectory(getApplicationContext()); 
    cacheDir.mkdirs(); 


    ImageLoaderConfiguration config = new 
     ImageLoaderConfiguration.Builder(getApplicationContext()) 
     .defaultDisplayImageOptions(defaultOptions) 
     .discCache(new TotalSizeLimitedDiscCache(cacheDir, 25 * 1024 * 1024)) 
     .build(); 

    ImageLoader.getInstance().init(config);    
} 

그리고 코드를 호출

(보여주는 imageUrl imageView에) 너무 .cacheInMemory(true)를 사용하지 않는 (false로 기본 메모리 캐시를 설정하면

ImageLoader.getInstance().displayImage(imageUrl, imageView); 
+0

메모리 캐시가없는 경우 발생하는 상황을 테스트하여 true로 설정합니다. – Nanne

답변

1

), 캐시가 설정된 최대 값을 유지하는 것 같습니다. 계산 된 캐시는 아마도 온 디스크 캐시와 메모리 캐시의 조합 일 것입니다.

이것은 안드로이드 OS에서 "캐시"번호를 다소 덜 유용하게 만들지 만, 다른 한편으로 그것은 다소 공정합니다. 숫자가 정렬되어있는 것처럼 보입니다. 최대 값을 모두 설정하고이를 사용자에게 알려주는 것입니다.

관련 문제