【发布时间】:2021-11-15 13:43:45
【问题描述】:
我需要的是:我正在使用 glide 在我的应用程序中显示图像。我需要为 glide 中的缓存图像设置到期时间。我知道我们可以使用签名(现在更改为 GlideImageVersion)。我发现要将到期时间设置为 600 秒,我使用了“System.currentTimeMillis()/(1000 * 60 *10)”。
编辑:从技术上讲,到期意味着,我需要为签名设置一个值,并且该值不应在 3,628,800 秒(60,480 分钟)内改变。
600 秒:
currentTime = System.currentTimeMillis()
ExpiryFor10mins = currentTime / (1000*60*10) //For 10 minutes
Glide.with(getActivity())
.load(mUser.getCoverPhoto())
.error(R.drawable.bg_1)
.signature(new StringSignature(ExpiryFor10mins.toInt())
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
mTextBioOther.setVisibility(!isMe ? View.VISIBLE : View.GONE);
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
mTextBioOther.setVisibility(!isMe ? View.VISIBLE : View.GONE);
return false;
}
})
.into(mImageCover);
但我需要将此缓存到期时间设置为 3,628,800 秒,即 6 周。任何人都可以帮助弄清楚这个数学吗?提前谢谢...
【问题讨论】:
-
您是要清除所有缓存,还是清除单个图像缓存?\
-
我要清除单个图像缓存...
-
我认为这在 glide 中是不可能的,您可以使用签名覆盖相同的 url,但不能为单个图像清除缓存
-
我不想清除缓存。从技术上讲,我需要使用签名覆盖相同的 Url。我现在使用的签名是 "System.currentTimeMillis()/(1000 * 60 *10)" 。这给出了一个在 10 分钟内不会改变的值。所以在那 10 分钟内,我将从缓存中获取图像。 10分钟后,当签名值发生变化时,glide会覆盖Url,所以会重新下载图片。但我需要一个数学来使签名在 6 周(60,480 分钟)内不变
-
这个签名是否工作了 10 分钟(600000 毫秒)??
标签: android android-studio android-glide cache-control cache-expiration