如何从服务器获取数据并更新数据库?

5

我正在开发一款安卓应用,但是我无法解决这个问题:当用户点击更新按钮时,我想要连接到我的服务器并检查数据是否有更新,如果有更新,我想从服务器获取数据并更新数据库。我应该使用XML结构来检查和获取更新,还是有更聪明的方法来实现?

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资源已经被广泛讨论,您可以在谷歌和这里找到大量的教程和参考资料。

由于您没有提供服务器端的详细信息(是PHP?Java?.NET?),因此我也不会告诉您如何实现/添加版本标头。我只是根据自己的经验向您解释了最佳实践。


感谢您详细的回答。服务器端不是问题,我正在寻找主要思路,现在我已经明白了。再次感谢。 - dirhem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接