Android Glide 이미지가 갱신되지 않는 오류

pass·2023년 7월 10일
0

Android

목록 보기
17/36

🔥 Glide 이미지가 갱신되지 않는 오류 해결

🎈 Android Glide 라이브러리를 사용하면서 ImageView 이미지가 갱신되지 않는 오류가 발생하였다.
오류의 원인해결방법을 알아보자.


🌈 배경

Retrofit을 사용하여 서버와의 통신을 통해 이미지 파일(png)을 받는다.
해당 이미지 파일을 Uri 로 변환하고, Glide 에 해당 Uri 를 load 한다.

이 과정에서 이전 통신에서 받아온 이미지 파일이 로딩되는 것을 확인하였다.
분명 이미지를 로드할 때마다 Activity 를 종료하고, 다시 실행하는 로직임에도 불구하고, 이미지 갱신이 되지 않았다.



📌 의심한 내용

  • 서버와의 통신 과정에서 동일한 이미지 파일(png)을 저장하게 되는 경우
  • 서버에서 받는 이미지 파일은 정상이지만, 이미지 파일이 덮여쓰여 저장되지 않는 경우
  • 이미지 임시저장까지 잘 진행되지만, Uri 로 변환하는 과정에서 오류가 발생한 경우
  • Glide 에서 이전 Uri 값을 가지고 있는 경우



👍 해결

위의 의심한 내용들을 차례대로 수정해보았고, 결국 Glide 에서 이전 Uri 값을 가지고 있는 경우로 원인을 파악했다.
Glide 는 Uri 로 이미지를 로드할 때, 캐시된 이미지를 우선적으로 사용한다.
따라서 Uri 가 업데이트 되어도 Glide 의 캐시를 갱신하지 않으면, 이전에 로드된 이미지가 표시될 수 있다.

Glide.with(this)
        .load(uri)
        .skipMemoryCache(true)
        .diskCacheStrategy(DiskCacheStrategy.NONE)
  • skipMemoryCache(true) -> 디스크 캐시를 사용하지 않음
  • skipMemoryCache(true) -> 메모리 캐시를 사용하지 않음

원인을 파악하고 해결방안을 찾았고, 위의 코드로 캐시 문제를 해결하였다.

profile
안드로이드 개발자 지망생

0개의 댓글