android毕加索无效无效

时间:2015-10-28 18:24:56

标签: android caching picasso

if(isConnected()) { // if device online
    Picasso.with(context)
            .load(url)
            .networkPolicy(NetworkPolicy.NO_CACHE)
            .placeholder(R.drawable.ic_contact_picture)
            .error(R.drawable.ic_contact_picture)
            .into(imageView, new Callback() {
                @Override
                public void onSuccess() { }
                @Override
                public void onError() {
                    Picasso.with(context).invalidate(url);
                }
            });
} else { // if device offline
    Picasso.with(context)
            .load(url)
            .networkPolicy(NetworkPolicy.OFFLINE) // force load cached image
            .placeholder(R.drawable.ic_contact_picture)
            .error(R.drawable.ic_contact_picture)
            .into(imageView);
}

之前我的服务器上有一张图片。我使用毕加索拍摄了这张照片并将其缓存了。

现在我删除了该图像,因此我希望在picasso缓存中使该图像无效。现在,当设备在线时刷新imageview,imageview为空白,并且按照预期执行了onError。

,但

现在当设备离线时,执行了else部分,因为我已经给出了networkpolicy.offline,所以picasso将被强制显示缓存图像,因为之前我已经使它失效了。它仍显示缓存中的图像。为什么呢?

1 个答案:

答案 0 :(得分:3)

使用它来使图像路径无效:

Picasso.with(mContext).invalidate(ImagePath + ".jpg");  

并加载您的图片使用:

 Picasso.with(mContext).load(ImagePath+".jpg").networkPolicy(NetworkPolicy.NO_CACHE).placeholder(R.drawable.loading).error(R.drawable.ic_new).into(Imageview);