<分区>
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 将被迫显示缓存图像,该图像不应该存在,因为我之前已将其无效。它仍然显示缓存中的图像。为什么?