2010-09-20 132 views
4

我正在实现一个android应用程序,我不知道如何解决这个问题:当用户点击更新按钮时,我想连接到我的服务器,并检查数据是否有任何更新,如果有是,我想从服务器获取数据并更新数据库。我是否应该使用xml结构来检查并从服务器获取更新,或者是否有更智能的方法来实现这一点?如何从服务器获取数据并使用它更新数据库?

回答

5

是的,有一个更聪明的方法来做到这一点,但它需要在服务器和客户端的一些工作。这就是它的工作原理:所有数据都应该可以用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资源是一些已经被处理,你会发现一堆教程和参考在谷歌和这里。

你没有提供服务器端的细节(是PHP?Java?.NET?),所以我也不会给你详细说明如何实现/添加版本头。我只是根据自己的经验向你解释了做这种事情的最好方法是什么。

+0

感谢您的详细解答。服务器端不是问题,我正在寻找主要想法,我现在得到它。再次感谢。 – dirhem 2010-09-20 22:56:54

相关问题