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 ですか?)、バージョン ヘッダーを実装/追加する方法の詳細についても説明しません。私自身の経験に基づいて、この種のことを行うための最良の方法の1つを説明しました.

于 2010-09-20T19:34:44.240 に答える