java - Picasso multiImage downloader get " target got garbage collected" -


i try make cache on code using flickr api want download image once try create custom picasso helper download image in request garbage collection error
when loop item

public class picassohelper {

public static picasso mypicasso; private static final string tag = "picassohelper";  public static void init(context context){     picassohelper.mypicasso = picasso.with(context); }  public static class downloadtarget implements target {     public string filename;     public runnable onbitmaploaded;     public runnable onbitmapfailed;      @override     public void onbitmaploaded(bitmap bitmap, picasso.loadedfrom from) {         log.i(tag, "onbitmaploaded");        searchactivity.protectedfromgarbagecollectortargets.remove(this);         try {              file picfile = new file(filehelper.getappexternaldir(), filename);             if(picfile.exists()){                 picfile.delete();             }             picfile.createnewfile();             fileoutputstream out = new fileoutputstream(picfile);             bitmap.compress(bitmap.compressformat.jpeg, 100, out);             out.flush();             out.close();             onbitmaploaded.run();         } catch (ioexception e) {             e.printstacktrace();             onbitmapfailed.run();         }     }      @override     public void onbitmapfailed(drawable errordrawable) {         searchactivity.protectedfromgarbagecollectortargets.remove(this);          onbitmapfailed.run();     }      @override     public void onprepareload(drawable placeholderdrawable) {      } } 

}

i used download multi photo download

then in main activity

private void photoitempicassodownloader(list<photoitem> photoitems) {     (photoitem photoitem: photoitems) {         adapter.picstatuslist.put(photoitem.getid(), photostate.pic_status_loading);     }     log.i("done", "pic_status_loading");     adapter.notifydatasetchanged();     ( photoitem photoitem : photoitems) {         final photoitem item = photoitem;         picassohelper.downloadtarget target = new picassohelper.downloadtarget();         target.filename = photoitem.getid() + ".jpg";         target.onbitmaploaded = new runnable(){             @override             public void run() {                 adapter.picstatuslist.put(item.getid(),photostate.pic_status_saved);                 log.i("done", "pic_status_saved");                  adapter.notifydatasetchanged();             }         };          target.onbitmapfailed = new runnable() {             @override             public void run() {                 adapter.picstatuslist.put(item.getid(),photostate.pic_status_fail);                 log.i("failed", "pic_status_fail");                 adapter.notifydatasetchanged();             }         };         mypicasso.load(photoitem.getgeturl()).tag(this).into(target);     } } 

onbitmaploaded not called @ although , log

"d/picasso: main canceled [r28]+212ms target got garbage collected"


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -