我需要向用户显示我从谷歌云存储加载的个人资料图片,问题是当我更改图片时将其上传到服务器,然后刷新页面我仍然会看到旧图像。 我尝试使用应用程序的ios版本,它立即刷新,因此它不是服务器的问题。
要加载图像我使用Picasso,我喜欢这样:
Picasso.with(ProfileActivity.this).load(imageURL).memoryPolicy(MemoryPolicy.NO_CACHE).into(profilePhoto);
我注意到当我卸载应用程序然后再次安装它时会刷新图像,所以我认为这是缓存问题。 有人可以帮忙吗?谢谢。
答案 0 :(得分:0)
在加载图片之前尝试使其失效:
Picasso.with(ProfileActivity.this).invalidate(imageURL);
Picasso.with(ProfileActivity.this).load(imageURL).memoryPolicy(MemoryPolicy.NO_CACHE).into(profilePhoto);
编辑:你有没有尝试过:
Picasso
.with(ProfileActivity.this)
.load(imageURL)
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.into(profilePhoto);
Acutally我认为问题是因为你没有使用本地图像,它使用网络来缓存它。
如果上述方法不起作用,请尝试以下方法:
Picasso
.with(ProfileActivity.this)
.load(imageURL)
.networkPolicy(NetworkPolicy.NO_CACHE)
.into(profilePhoto);
答案 1 :(得分:0)
我想出了如何解决这个问题。 我不得不像这样添加networkPolicy:
Picasso.with(ProfileActivity.this)
.load(imageURL)
.networkPolicy(NetworkPolicy.NO_CACHE)
.memoryPolicy(MemoryPolicy.NO_CACHE)
.into(profilePhoto);
现在它有效,谢谢大家。