5

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

4

1 回答 1

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?),所以我也不会为您提供有关如何实现/添加版本标头的详细信息。我只是根据我自己的经验向您解释了做这种事情的最佳方法之一。

于 2010-09-20T19:34:44.240 回答