2015-10-06 55 views
0

我不太清楚问题是我的android程序或它在web服务器API中的某种限制。我使用futurerequest从api key和feed id获取xively的数据,并以json格式解析数据,然后将其存储在我的数据库中。连接建立起来很好,并且能够连接并从服务器获取数据。这是通过一个asynctask完成的,请求频率是1分钟。从android上的web服务器拉数据不更新

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

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

编辑:单独清除缓存没有帮助。此外,使用手机而不是模拟器也不会有帮助。使用凌空库来处理该请求/网络流量

回答

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 
}