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

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

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

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

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

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

写这篇文章之后继续研究发现,Picasso.with(context).invalidate(path)删除的是内存缓存中的图片,磁盘缓存中的图片没有删除,所以还会出错。

删除磁盘图片缓存路径下的所有缓存图片,图片正常显示。

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

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

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

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

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

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

用这种方法处理,后面项目还是遇到一样的问题,这个方法并没有完美解决问题。。。

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

PS:后面仔细想了想,这个方法还有漏洞,也果然遇到了问题,最后我直接将磁盘缓存路径(详见我上篇文章)整个文件夹删了,再加载图片,没有再出现问题。(Picassp自带的删除缓存的方法删除的是内存缓存中的图片)

第一种方法的思路比较清晰,目前没出现问题。

最新文章

  1. 如何生成git的公钥和私钥
  2. Mac下的类似apt-get的包管理工具Homebrew(笔记)
  3. Android序列化之Serializable和Parcelable
  4. HTML 学习笔记 JavaScript (对象)
  5. C字符串和指针问题汇总
  6. PHP 5.4 on CentOS/RHEL 6.4 and 5.9 via Yum
  7. 工作了3年的JAVA程序员应该具备什么技能?(zhuan)
  8. Mac Maven java_home错误
  9. ExtJs双ActionResult共用同一Js文件ID冲突解决方案
  10. mysql查询字段值为数字
  11. Codeforces 556 A Case of the Zeros and Ones
  12. 一个不错的扩展:Ext.ux.container.ButtonSegment
  13. 十大web安全扫描工具
  14. 启动 ServiceFabric Windows服务报1053
  15. pip使用豆瓣的镜像源
  16. LoadRunner参数化&关联
  17. NYOJ 116 士兵杀敌(二)(二叉索引树)
  18. maven学习(6)-Maven依赖范围
  19. nodejs文件操作笔记
  20. 小刘的深度学习---CNN

热门文章

  1. spring boot打包后windows启动乱码
  2. Windows 下安装ReText
  3. Python + Robotframework + Appium 之APP自动化测试实践(二)
  4. Codeforces758B Blown Garland 2017-01-20 10:19 87人阅读 评论(0) 收藏
  5. mongodb 两小时入门
  6. Python学习-21.Python的代码注释
  7. Postgresql 創建觸發器,刪除觸發器和 禁用觸發器
  8. Alwayson--与复制的影响
  9. 拒绝“高冷”词汇!初学C#中实用的泛型!
  10. Elasticsearch 核心插件Kibana 本地文件包含漏洞分析(CVE-2018-17246)