gpt4 book ai didi

android - 如何自动清除 Volley 缓存?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:36:41 24 4
gpt4 key购买 nike

例如,我想每 30 分钟清除一次请求队列。

那么自动清除 volley 缓存的最佳方法是什么?

通过扩展 volley 缓存类来覆盖方法?

或者构建一个计时器,每次我需要时都会清除缓存?

最佳答案

Google Volley 提供了两种从缓存中清除项目的方法:

AppController.getInstance().getRequestQueue().getCache().remove(key);

AppController.getInstance().getRequestQueue().getCache().invalidate(key, fullExpire);

删除 表示您要删除实际的缓存数据。

Invalidate 意味着您只是将数据标记为无效。所以 volley 会向服务器检查数据是否仍然有效。 full expire 确定是否在 volley 与服务器验证之前使用数据。

要每 30 分钟清除一次缓存,请使用以下代码:-

您可以使用 volley 的 serverDate 来获取最初收到响应的日期

AppController.getInstance().getRequestQueue().getCache().get(url).serverDate

因此在您的代码中使用 getMinutesDifference 函数作为

  public static long getMinutesDifference(long timeStart,long timeStop){
long diff = timeStop - timeStart;
long diffMinutes = diff / (60 * 1000);

return diffMinutes;
}

并在您的代码中将此函数调用为

Calendar calendar = Calendar.getInstance();
long serverDate = AppController.getInstance().getRequestQueue().getCache().get(url).serverDate;
if(getMinutesDifference(serverDate, calendar.getTimeInMillis()) >=30){
AppController.getInstance().getRequestQueue().getCache().invalidate(url, true);
}

如果之前的 url 响应 >=30 分钟,它将使缓存失效。

关于android - 如何自动清除 Volley 缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24464610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com