android picasso 无效不工作

标签 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 获取了该图像并将其缓存。

现在我删除了那张图片,所以我想使 picasso 缓存中的那张图片无效。现在,当设备在线时刷新 imageview,imageview 是空白的,并且按照预期执行了 onError。

但是,

现在,当设备处于离线状态时,将执行 else 部分,并且由于我已提供 networkpolicy.offline,picasso 将被迫显示缓存图像,该图像不应该存在,因为我之前已将其无效。它仍然显示缓存中的图像。为什么?

最佳答案

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

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);

关于android picasso 无效不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33398792/

相关文章:

android - 首次运行时未加载 picasso 图像

android - 如何在屏幕上水平分割屏幕

android - eclipse : Android SDK content Loader

http - 如果我为 http 过期设置了遥远的 future 日期,我该如何推送意外更改?

javascript - 如何实现 AJAX 响应的缓存?就像在 Internet Explorer 中一样

android - Picasso 和 Glide,从 Dropbox 下载图片

android - 我在 Flutter : The following assertion was thrown building TextField, 中遇到了一个问题,它让我遇到了一个陌生的问题

android - 在每个 Activity 中显示抽屉导航 - android studio

performance - Google PageSpeed - 设置到期日期

android - 如何使用 Picasso 库设置 ImageView ?