gpt4 book ai didi

java - Android Picasso - 清除缓存但图像仍然存在

转载 作者:行者123 更新时间:2023-12-01 09:56:12 25 4
gpt4 key购买 nike

所以在某些时候我需要清除应用程序中的 picasso 缓存,但是当我清除它时,图像是相同的。如果图像 URL 发生变化,则会拉取新图像,但如果图像 URL 相同,则保留旧图像。

任何人都可以帮我清除缓存以便删除图像吗?

这就是我设置 picasso 的方式:

Cache picassoCache = new LruCache(MEMORY_CACHE_SIZE);
picassoCacheClearer = new PicassoCacheClearerImpl(picassoCache);
picasso = new Picasso.Builder(context)
.downloader(new OkHttpDownloader(context.getCacheDir(), IMAGE_CACHE_SIZE))
.memoryCache(picassoCache)
.build();

然后尝试通过以下方式清除它:

cache.clear();

下面是实际加载图像的代码:

picasso.load(carouselAction.getImageUrl())
.placeholder(R.drawable.ic_placeholder)
.into(viewHolder.plistImageView);

我可以看到 Invalidate() 方法现已弃用,那么我还能做什么?

最佳答案

我也遇到了同样的问题,我使用了这个 hacky 方法来解决它。为了强制它刷新,我只需更改 url,添加版本标签即可。这通常在 Web 开发中使用,以确保不使用缓存中的内容。

例如,我会从 example.com/mypic.png?version=1234 加载图像
由于 url 不同,因此不会从缓存加载它。

String versionTag = "?version=" + new Date().getTime();
picasso.load(carouselAction.getImageUrl() + versionTag)
.placeholder(R.drawable.ic_placeholder)
.into(viewHolder.plistImageView);

关于java - Android Picasso - 清除缓存但图像仍然存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37191557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com