我正在使用我的应用程序中的Volley
库上传图像,并使用Glide
将图像设置为textview。我有更新图像的按钮,该图像会打开图库并让用户选择图像。然后,文件成功上传到特定的文件夹中,但是图像保持不变。我还尝试了注销和登录用户,该操作擦除了ShredPreferences
中的值,并更新了所有数据,但是图像保持不变。服务器文件夹中的旧图像将替换为新图像,但仍会在应用程序中显示。仅在从Settings
清除应用程序数据后更新。为什么会这样呢? glide是否存储缓存数据?如何摆脱这个?
答案 0 :(得分:0)
默认情况下,Glide从服务器缓存图像。因此,如果您的URL不变,它将显示缓存中的图像。要解决此问题,您可以使用RequestOptions:
RequestOptions requestOptions = new RequestOptions()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true);
Glide.with(this)
.load(YOUR_IMAGE_URL)
.apply(requestOptions)
.into(YOUR_IMAGEVIEW);
编辑(毕加索)
如果您使用的是毕加索,则情况相同。在这种情况下,您应该使用:
Picasso.with(this)
.load(YOUR_IMG_URL)
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.networkPolicy(NetworkPolicy.NO_CACHE)
.into(YOUR_IMAGEVIEW);