2016-03-07 80 views
0

我使用畢加索上傳recyclerView畢加索緩存例外

內的圖像在打開的應用程序,第一次它的工作原理和上傳圖像,但是從現在開始,每次在我打開應用程序的負載失敗了長例外關於緩存:

=============== BEGIN PICASSO STATS =============== 內存高速緩存統計 最大緩存大小:9586980 緩存大小:0 緩存%全:0 高速緩存命中:0 緩存未命中:1 廣告網絡統計 下載次數:0 總下載量:0 平均下載大小:0 位圖統計 總位圖解碼:0 總位圖大小:0 總轉化位圖:0 總轉化位圖大小:0 平均位圖大小:0 平均轉化位圖大小:0 =============== END PICASSO STATS ===============

的事情是,我幾乎甚至開始加載圖像,所以它完全取消合理的高速緩存已滿或使前ceptions

這是我的代碼:

Picasso.Listener listener = new Picasso.Listener() { 
@Override 
public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) { 
    Log.e(Utils.TAG, "Error loading image: " + exception.getMessage()); 
    exception.printStackTrace(); 
} 
}; 
Picasso.Builder builder = new Picasso.Builder(context); 
builder.listener(listener); 
if(!veediChannelArrayList.get(i).isthumbLoaded()) { 

    builder.build().load(veediChannelArrayList.get(i).getRegularThumbnailURL()).into(target); 

}

Target target = new Target() { 
@Override 
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { 

    veediChannelArrayList.get(i).setBitMap(bitmap); 
    veediChannelArrayList.get(i).setIsthumbLoaded(true); 
    channelsViewHolder.thumnailIV.setImageBitmap(veediChannelArrayList.get(i).getBitMap()); 
} 

@Override 
public void onBitmapFailed(Drawable errorDrawable) { 

} 

@Override 
public void onPrepareLoad(Drawable placeHolderDrawable) { 

} 

}; 

回答

0

在功能into(Target target),畢加索檢查當前線程是主線程。請參閱RequestCreate.java代碼:

public void into(@NonNull Target target) { 
    long started = System.nanoTime(); 
    checkMain(); 

    ... 
}