来自服务器的图片未更新Android

时间:2017-04-07 19:31:10

标签: android bitmap imageview picasso

我需要向用户显示我从谷歌云存储加载的个人资料图片,问题是当我更改图片时将其上传到服务器,然后刷新页面我仍然会看到旧图像。 我尝试使用应用程序的ios版本,它立即刷新,因此它不是服务器的问题。

要加载图像我使用Picasso,我喜欢这样:

Picasso.with(ProfileActivity.this).load(imageURL).memoryPolicy(MemoryPolicy.NO_CACHE).into(profilePhoto);

我注意到当我卸载应用程序然后再次安装它时会刷新图像,所以我认为这是缓存问题。 有人可以帮忙吗?谢谢。

2 个答案:

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

现在它有效,谢谢大家。