** 문제점

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)



+ Recent posts