2016-03-07 86 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(); 

    ... 
}