我正在实现Android应用程序,我无法弄清楚如何解决此问题:当用户单击“更新”按钮时,我想连接到我的服务器,并检查数据上是否有任何更新,如果有的话,如果有的话,我想从服务器获取数据并更新数据库。我应该使用XML结构检查和从服务器获取更新,还是有任何更聪明的方法可以实现此目的?

有帮助吗?

解决方案

是的,有一种更聪明的方法可以做到,但是它需要在服务器和客户端上进行一些工作。这就是它的工作方式:所有数据都应以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?),所以我也不会为您提供如何实现/添加版本标题的详细信息。我只是向您解释了什么是根据我自己的经验来做这种事情的最佳方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top