2

データ接続が一時的に失われた場合でも動作する必要がある Android アプリのような POS を構築しています。

データ接続が利用可能な場合、すべてのトランザクションをサーバーにすぐに報告するという考え方です。そうでない場合は、SQLite にローカルに保存し、後で接続が利用可能になったときに同期します。

最初の計画は、個々のトランザクションをサーバー上で維持されているのと同じ一般的な DB 構造に保存することでしたが、サーバー上には非常に多くの異なる種類のトランザクションと関係があるため、これによりサーバー上のサーバーから DB 構造全体が効果的に複製されます。電話そのもの。

これに代わる方法は、変更をサーバーに通知するために使用されている最終的な HTTP 要求を保存することです。このようなアプローチの利点は、URL、リクエストのコンテンツ、メソッドなどを格納するために必要なテーブルが 1 つだけであることです。ただし、匿名の内部クラスとして実装される、レスポンスでコードを実行する必要がある呼び出しがいくつかある可能性があります。 . このアプローチの唯一の問題は、これらの匿名内部クラスをシリアライズして、(可能性のある) 電話の再起動後でも DB からロードして実行できるようにすることです。

これを実装する最良の方法は何ですか?オプションAまたはオプションB?また、オプション B の場合、匿名の内部クラス (ここではクロージャーとして効果的に使用されています) をシリアル化および非シリアル化することは本当に可能ですか?

4

1 に答える 1

1

オプション A の場合、CouchDB を使用してデバイス/サーバーのレプリケーションを処理することを検討することをお勧めします。

Android 上の Couchdb

于 2012-04-04T20:50:06.547 に答える