【问题标题】:Pulling data from web server on android not updating从android上的Web服务器中提取数据不更新
【发布时间】:2015-10-06 20:04:43
【问题描述】:

我不太确定问题出在我的 android 程序上还是网络服务器 api 中的某种限制。我使用 futurerequest 从 xively 获取数据,使用 api 密钥和提要 id,并以 json 格式解析数据,然后将其存储在我的数据库中。连接建立得很好,我能够连接并从服务器获取数据。这是通过异步任务完成的,请求频率为 1 分钟。

我面临的问题是,当我通过网络浏览器更新服务器中的数据时,我的程序上的响应没有更新。它不断获取旧数据。调试时,我可以清楚地看到一切都按预期工作,并且我可以看到我从服务器获取的 json 响应对象正在工作,但是数据并不新鲜。我发现通过手动更改 api 密钥可以使程序获取最新数据。此外,通过清除缓存和数据导致从服务器获取新数据。如您所知,我不能要求用户每次都清除缓存和数据以获取最新更新。

我该如何解决这个问题?这个问题背后的原因可能是什么?提前致谢!

编辑:单独清除缓存无济于事。此外,使用手机而不是模拟器也无济于事。

我正在使用 volley 库来处理请求/网络流量

【问题讨论】:

    标签: android json api http xively


    【解决方案1】:

    想要更新我找到的解决方案。这个link 帮助我找到了解决方案。显然,凌空涉及一些缓存。通过使用方法

    request.setShouldCache(false);
    

    我能够随时从服务器获取最新更新。

    但是,当我尝试使用下面的代码获取缓存时,在将其设置为 false 之前,查看缓存中的内容是空的。条目将始终为空。如果有人知道原因并能解释一下,我将不胜感激:)

    Entry entry = queue.getCache().get(url);
    if(entry!=null){
         String data = new String(entry.data, "UTF-8");
         // process data
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-29
      • 1970-01-01
      • 2012-09-07
      • 2020-01-06
      • 1970-01-01
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      相关资源
      最近更新 更多