🎈 Android Glide 라이브러리를 사용하면서 ImageView 이미지가 갱신되지 않는 오류가 발생하였다.
오류의 원인과 해결방법을 알아보자.
Retrofit을 사용하여 서버와의 통신을 통해 이미지 파일(png)을 받는다.
해당 이미지 파일을 Uri 로 변환하고, Glide 에 해당 Uri 를 load 한다.
이 과정에서 이전 통신에서 받아온 이미지 파일이 로딩되는 것을 확인하였다.
분명 이미지를 로드할 때마다 Activity 를 종료하고, 다시 실행하는 로직임에도 불구하고, 이미지 갱신이 되지 않았다.
위의 의심한 내용들을 차례대로 수정해보았고, 결국 Glide 에서 이전 Uri 값을 가지고 있는 경우로 원인을 파악했다.
Glide 는 Uri 로 이미지를 로드할 때, 캐시된 이미지를 우선적으로 사용한다.
따라서 Uri 가 업데이트 되어도 Glide 의 캐시를 갱신하지 않으면, 이전에 로드된 이미지가 표시될 수 있다.
Glide.with(this)
.load(uri)
.skipMemoryCache(true)
.diskCacheStrategy(DiskCacheStrategy.NONE)
원인을 파악하고 해결방안을 찾았고, 위의 코드로 캐시 문제를 해결하였다.