Dan*_*ali 22 android caching picasso
我有一些图像,我在应用程序启动时从不同的网站下载,通过这样做:
Picasso.with(context).load(image_url).fetch();
Run Code Online (Sandbox Code Playgroud)
现在,假设用户关闭应用程序并关闭.当应用程序再次启动时,Picasso会以这种方式显示图像:
Picasso.with(ctx).load(image_url).placeholder(R.drawable.ph).into(imageView);
Run Code Online (Sandbox Code Playgroud)
问题是某些图像是从磁盘缓存加载的(调试模式下为黄色三角形),而其他图像则是Picasso显示占位符.
为什么?我期待每个图像都从磁盘缓存加载.
Hit*_*ahu 34
您可以通过此策略使用此代码Picasso将在缓存中查找图像,如果只是失败,则图像将通过网络下载.
Picasso.with(context)
.load(Uri.parse(getItem(position).getStoryBigThumbUrl()))
.networkPolicy(NetworkPolicy.OFFLINE)
.into(holder.storyBigThumb, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
// Try again online if cache failed
Picasso.with(context)
.load(Uri.parse(getItem(position)
.getStoryBigThumbUrl()))
.placeholder(R.drawable.user_placeholder)
.error(R.drawable.user_placeholder_error)
.into(holder.storyBigThumb);
}
});
Run Code Online (Sandbox Code Playgroud)
做这个:
Picasso.with(this)
.load(url)
.networkPolicy(NetworkPolicy.OFFLINE)
.into(imageView);
Run Code Online (Sandbox Code Playgroud)
还要检查我之前的答案,也许会对你有所帮助: 在Picasso中使缓存无效
这个逻辑对我有用:
if network is available:
Picasso.with(context).load(image).into(imageView);
else:
Picasso.with(context).load(image).networkPolicy(NetworkPolicy.OFFLINE).into(imageView);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27293 次 |
最近记录: |