panpf / sketch

Sketch is an image loading library designed for Compose Multiplatform and Android View. It is powerful and rich in functions. In addition to basic functions, it also supports GIF, SVG, video thumbnails, Exif Orientation, etc.
Apache License 2.0
2.05k stars 309 forks source link

我想问下到底该如何删除指定key的缓存 #196

Closed MiChongs closed 4 months ago

MiChongs commented 4 months ago

我做的软件需要上传头像后删除原头像的缓存,但我照着文档做好像并不行,还是会显示原头像的缓存 image image

panpf commented 4 months ago

假如你的头像 url 是 https://sample.com/avatar.png

那么 downloadCache 的 key 是和 url 一样的,你这么删除没问题

但 resultCache 和 memoryCache 的 key 却是 url 拼接上加载参数的,你直接拿 url 是删不掉的,你应该从 DisplayResult 中取 requestCacheKey,拿这个 requestCacheKey 去删

DisplayResult 需要通过 listener 来获取,详见 https://github.com/panpf/sketch/blob/main/docs/wiki/listener.md

MiChongs commented 4 months ago

假如你的头像 url 是 https://sample.com/avatar.png

那么 downloadCache 的 key 是和 url 一样的,你这么删除没问题

但 resultCache 和 memoryCache 的 key 却是 url 拼接上加载参数的,你直接拿 url 是删不掉的,你应该从 DisplayResult 中取 requestCacheKey,拿这个 requestCacheKey 去删

DisplayResult 需要通过 listener 来获取,详见 https://github.com/panpf/sketch/blob/main/docs/wiki/listener.md

但我这里使用requestCacheKey还是无法删除好像,使用Editor或Snapshot都不行,还是显示原头像,重启了APP也一样

panpf commented 4 months ago

那就需要你 debug 去查查为啥删不掉了