Picasso处理同一url,但资源变了的情况

Posted 掌握当下

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Picasso处理同一url,但资源变了的情况相关的知识,希望对你有一定的参考价值。

问题:上传头像成功后,头像的url没变,加载头像时还是从缓存中根据url加载以前的图片。

这个问题,很多人遇到过。也受到很多同行的启发。

图片url不变,感觉不是很合理,这样会把缓存搞乱。

但是,作为程序员,我还是得好好想想改怎么解决这个问题。

1.既然是缓存引起的问题,那我首先考虑的是清除缓存。

使用Picasso.with(context).invalidate(path),毫无效果,

再加上mClient.cache().delete();也是无能为力。

我想这应该是内存缓存中还有对应图片的问题。。。

不过貌似没有提供清除内存缓存的办法。。。

这道题太难了,太难了,我不会做。。。

还是换个思路吧

2.清除缓存的路走不通,那就换条路走。

我能否不从缓存中读取数据,直接从网络去图片呢?

这个比较简单,Picasso有提供方法:

Picasso.with(context)
.load(url)
.fit()
.memoryPolicy(MemoryPolicy.NO_CACHE)
.networkPolicy(NetworkPolicy.NO_CACHE)
.into(imageView)

试了一下,可以正常加载头像。

可是,每次都从网络下载图片,是不是太浪费流量了,而且体验效果也不是很好。

我这边只是在上传图片成功后才强制从网络获取图片,其他地方都用缓存。

我想,这已经满足我现阶段的需求了。

 

 

Tips:好记星不如烂笔头,我又来灌水了~~~

以上是关于Picasso处理同一url,但资源变了的情况的主要内容,如果未能解决你的问题,请参考以下文章

将图像 url 设置为 listadapter 以使用 Picasso 显示图像

如何使用 Picasso 使用动态 URL 缓存来自 S3 存储桶的图像?

使用 Picasso 获取带有位图的回调

Android 常用开源框架源码解析 系列 picasso 图片框架

arcgis投影转换中坐标变了的问题

PHP代码里有没有办法实现让页面跳转,但地址栏上的URL不变