如何清理毕加索的内存缓存?
Posted
技术标签:
【中文标题】如何清理毕加索的内存缓存?【英文标题】:How to clean up memory cache for Picasso? 【发布时间】:2017-01-02 22:06:51 【问题描述】:我使用 Picasso 作为图片查看器,它可以旋转图像。
问题是当我旋转图像并尝试在查看器中更新它时,它不会更新,直到我“销毁”应用程序或使用内存策略 - .memoryPolicy(MemoryPolicy.NO_CACHE)
。我尝试使用没有缓存的应用程序,但速度很慢,所以不是解决方案。
因此,我正在寻找从内存中清理图像并更新视图的方法。我不能使用参数.rotate(90f)
,因为毕加索自己处理正确的旋转,在清理内存之前它不会暂时工作。
这个问题不是文件缓存的问题,而是内存缓存的问题(基于我对内存缓存设置的测试)。我也尝试过使文件缓存无效,但它并没有像我预期的那样有帮助。
Picasso.with(context).invalidate(filePath);
Picasso
.with(context)
.load(filePath)
.into(imageView);
【问题讨论】:
【参考方案1】:嗯,我终于找到了。在我使用 Glide 之前,它具有参数 signature。 Picasso 也有类似的东西,叫做 stableKey。当我使用它时,我不必关心缓存,我只需启用它并由毕加索处理休息。
Picasso
.with(context)
.load(filePath)
.stableKey(uniqueFileAttribute)
.into(imageView);
【讨论】:
以上是关于如何清理毕加索的内存缓存?的主要内容,如果未能解决你的问题,请参考以下文章