2014-01-10 2 views
0

독자적인 다운로더를 구현했지만 이미 검색 한 캐시의 이미지를 사용하지 않는 것 같습니다. 내 초기화 : 여기UIL 맞춤식 다운로더 캐시에서 콘텐츠를 사용하지 않습니다

private void initImageLoader() { 
    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this) 
      .imageDownloader(new SocketDownloader(this)) 
      .memoryCacheSizePercentage(25) 
      .writeDebugLogs() 
      .build(); 
    ImageLoader.getInstance().init(config); 
} 

내가 로그 캣에있는 것입니다 : 실제로이 개 이미지의이 작업에 대한 충분한 힙을 가져야한다 넥서스 7

01-10 11:47:26.899: D/ImageLoader(2345): Start display image task [socket://images/test- 
icon-1.png_53x53] 
01-10 11:47:26.899: D/ImageLoader(2345): Load image from network [socket://images/test- 
icon-1.png_53x53] 
01-10 11:47:26.899: D/Request(2345): request {"path":"images\/test- 
icon-1.png","action":"getimage","actionid":0} 
01-10 11:47:28.719: D/ImageLoader(2345): Subsample original image (200x200) to 100x100 
(scale = 2) [socket://images/test-icon-1.png_53x53] 
01-10 11:47:28.729: D/ImageLoader(2345): ImageAware is reused for another image. Task is 
cancelled. [socket://images/test-icon-1.png_53x53] 
01-10 11:47:28.839: D/ImageLoader(2345): Start display image task [socket://images/test- 
icon-1.png_53x53] 
01-10 11:47:28.839: D/ImageLoader(2345): Load image from network [socket://images/test- 
icon-1.png_53x53] 
01-10 11:47:28.839: D/Request(2345): request {"path":"images\/test- 
icon-1.png","action":"getimage","actionid":0} 

실행됩니다. 유용한 힌트를 보내 주셔서 감사합니다.

+0

'DisplayImageOptions'에서 캐싱을 사용하도록 설정 했습니까? – NOSTRA

+0

이 내 설정이다 : DisplayImageOptions가의 opts = 새로운 DisplayImageOptions.Builder() .extraForDownloader .considerExifParams (false)를 (새 ImageSocketDownloaderExtra (요청의 actionId)) .cacheInMemory() .build(); – drindt

답변

0

로그에서 이전 작업이 이미지로드 중에 취소되었습니다. ImageView가 재사용 되었기 때문에 이미지 로딩이 중단되었습니다. 스크롤 목록과 icon-1가 화면 밖으로 나옵니다. 그런 다음 스크롤하여 icon-1을 다시 표시해야하지만 완전히 다운로드되지 않았기 때문에 메모리에 캐시되지 않았습니다 (작업이 중단되었습니다). 그래서 ImageLoader가 다시로드를 시작합니다. 그래서 괜찮습니다.

동의어 디스크에서 캐싱을 사용하는 것이 좋습니다. 중복 다운로드를 방지합니다.