如何清理毕加索的内存缓存?

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);

【讨论】:

以上是关于如何清理毕加索的内存缓存?的主要内容,如果未能解决你的问题,请参考以下文章

apache缓存如何清理

如何为linux释放内存和缓存

如何清理缓存数据

如何清理Nginx缓存

如何清理MySQL 的查询缓存

linux下清理内存以及swap