** 문제점
Picasso 클래스의 into 메소드의 파라미터를 Target으로 주는 경우, onPrepareLoad 메소드까지만 실행되고 onBitmapLoaded는 안 되는 문제
** 원인
Target이 weak reference이기 때문에 메모리에서 지워짐.
** 해결 방법
빈 ImageView를 생성 후 해당 ImageView에 Target을 tagging한다. 이후 사용할 때는 태그를 불러와서 사용.
ImageView iv = new ImaveView(context);
iv.setTag(new Target () { ... });
Picasso.get().load(imgUrl).into((Target)iv.getTag());
참고 :
https://stackoverflow.com/questions/24180805/onbitmaploaded-of-target-object-not-called-on-first-load#answers
http://itmining.tistory.com/10 - [IT 마이닝] [안드로이드] 안드로이드 메모리 관리 (Weak Reference와 Soft Reference)
'개발 > Android' 카테고리의 다른 글
Glide 정리 (0) | 2018.06.02 |
---|---|
안드로이드 번역 API 연동 참고 (0) | 2018.05.31 |
Blur Transformation 구현하기 (Picasso, Glide) (0) | 2018.05.17 |
PreferenceManager의 값이 앱 재설치 시 그대로 남아있는 경우 (0) | 2018.05.16 |
녹스에서 안드로이드 태블릿 확인 시 디스플레이 설정값 (0) | 2018.04.24 |