我正在实现一个Android应用程序,我无法弄清楚如何解决这个问题:当用户点击更新按钮时,我想连接到我的服务器并检查数据是否有任何更新,如果有,我想从服务器获取数据并更新数据库。我应该使用xml结构检查并从服务器获取更新,还是有更智能的方法来实现这一目标?
答案 0 :(得分:6)
是的,这是一种更明智的方法,但它需要在服务器端和客户端上进行一些工作。这是它的工作原理:所有数据都应该可以以JSON或XML格式下载(我更喜欢JSON)。所以,你将在服务器中有这样的东西:http://example.com/resource.json。为了知道是否有新版本的数据,您可以做的是在HTTP响应中添加标题版本(这样您就不必下载和解析整个资源以了解是否有新版本)。
为了检查这些标题,您将得到以下内容:
URLConnection urlConnection = null;
try {
urlConnection = url.openConnection();
urlConnection.connect();
String currentVersionHeader = urlConnection.getHeaderField("your-version-header");
if( currentVersionHeader == null ) {
currentVersionHeader = "-1";
}
int version = Long.parseLong(currentVersionHeader);
// then you compare with the old version
if( oldVersion < version ){
// download the data
}
} catch (Exception e) {}
下载和解析JSON资源已经得到了处理,你会在Google和这里找到一堆教程和参考资料。
您没有提供服务器端的详细信息(是PHP?Java ?. NET?),因此我也不会详细介绍如何实现/添加版本标头。我只是根据自己的经验向你解释了做这类事情的最好方法。