Android アプリケーションを実装していますが、この問題を解決する方法がわかりません。ユーザーが更新ボタンをクリックすると、サーバーに接続して、データに更新があるかどうかを確認します。サーバーからデータを取得してデータベースを更新したい.xml構造を使用してサーバーから更新を確認して取得する必要がありますか、またはこれを達成するためのよりスマートな方法はありますか?
7156 次
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 に答える