티스토리 뷰

728x90
반응형

Glide clear cache


파일 이름은 해시된 키이므로 특정 URL 또는 파일 경로에 해당하는 캐시된 파일을 모두 디스크에서 삭제하는 것이 좋습니다. 원본 이미지를 로드하거나 캐시 할 수만 있다면 문제가 더 간단해질 것입니다. 


실제로 캐시 파일을 무효로 하는 가장 좋은 방법은 내용이 변경되면 (예 : url, uri, 파일경로 등 ) 식별자를 변경하는 것입니다.


 < 출처 : https://github.com/bumptech/glide/wiki/Caching-and-Cache-Invalidation > 



파일 경로를 변경할 수 없으므로 


Glide는 메모리와 디스크 캐시 키에 추가 데이터를 섞어서 


캐시된 데이터가 무효화되는 시점을 효과적으로 제어 할 수 있도록


signature() API 를 제공한다.


디스크의 이미지를 매번 다시 로드하려면 다음과 같이 코드를 변경할 수 있다.


1
2
3
4
Glide.with(DemoActivity.this)
     .load(Uri.parse("file://" + imagePath))
     .signature(new StringSignature(String.valueOf(System.currentTimeMillis())))
     .into(mImage);
cs



+References


https://stackoverflow.com/questions/33443146/remove-image-from-cache-in-glide-library



+ 추가


Glide가 v3 에서 v4 가 되면서 migratinon 되었다


http://bumptech.github.io/glide/doc/migrating.html#requestoptions



RequestOptions 객체가


centerCrop(), placeholder(), error(), priority(), diskCacheStrategy()


를 포함한다


적용시키기 위해서는


1
2
3
4
5
6
7
8
RequestOptions myOptions = new RequestOptions()
    .fitCenter()
    .override(100100);
 
Glide.with(fragment)
    .load(url)
    .apply(myOptions)
    .into(drawableView);
cs



위와 같이 적용해야 한다고 한다



+

마찬가지로 StringSignature 객체도 마이그레이션 되었다는데


방법을 알아내지 못해서 


RequestOptions 에 


1
2
.diskCacheStrategy(DiskCacheStrategy.NONE)// 디스크 캐시 저장 off
.skipMemoryCache(true)// 메모리 캐시 저장 off
cs



위와 같이 추가하여 해결하였다


자세히 알아봐야지



반응형
공지사항
최근에 올라온 글