在所有活动中清除滑动缓存?

时间:2017-05-04 04:13:06

标签: android caching android-imageview android-glide

我在我的应用中有多个活动的用户个人资料照片。有一次,他们改变了他们的个人资料图片,我想确保我的所有Glide实例的缓存都被清除。这样,当他们在应用程序中导航时,他们可以看到他们更新的个人资料照片。

目前我正在使用此方法:Glide.get(activity).clearDiskCache();并且只清除该活动的Glide缓存,而不是我的应用。

希望有人有一个快速的解决方案,我不需要为每个活动中的每个滑行实例调用.signature()函数。或者清除每个活动中的每个滑行缓存。

2 个答案:

答案 0 :(得分:2)

我经历了整个风车,尝试签名和清除缓存,说实话-这些选项都无法很好地工作,而且通常运行缓慢。

Glide的第一个推荐解决方案是优越得多,尽管有时可能需要更多时间来重新编写代码。我最终丢了大理石,对代码进行了必要的更改。非常值得。

解决方案::当用户上传新图像时,更改图像的图像名称。获取文件名并使用它。图像URL更改后,Glide将了解您已更改图像,并将相应地更新缓存。

答案 1 :(得分:0)

尝试

Glide.get(context).clearMemory();

Glide.get(context).clearDiskCache();

注意:必须在主线程上调用clearMemory()。必须在后台线程上调用clearDiskCache()。你不能在同一个线程上同时调用它们。