2012-01-19 14 views
5

私はAndroidタブレットで構築しているアプリケーションのデータをホストするWebサーバーを持っています。データはかなり頻繁に変更されますが、タブレットと携帯電話は必ずしもデータに接続されているとは限りません。ユーザーが以前に閲覧したデータにアクセスすることができます。オンラインサービスのユーザーデータをAndroidアプリケーションの「オフライン表示」に保存する

可能であれば、アプリケーションはWebサーバーからデータを取得し、可能であれば、電話でSQLiteサーバー(または適切な方法は何でも)を取得します。

これを実行するための実装または実装が既に設定されていますか?もしそうなら、そのような機能を実装する現在の方法は何ですか?そして、データに変更を加えた後、データ接続が復帰するたびにこれらの変更を適用することに、同じ方法を適用できますか?

答えて

2

私が知っている限り、一般的にこれに関する一般的な枠組みはありません。ここでは、イメージキャッシングを扱うことができるポストがいくつかありますが、これは簡単に適応可能ですが、オフラインで見るために完全に一般化されているか専門化されているものは何もありません。つまり、ほとんどのソリューションはURLとファイルだけで動作するため、データが非常に簡単な場合はかなり簡単に動作します。あなたのデータが何であるか、それをどのように表示するかということに非常に依存します。 WebViewに表示されるWebページで構成されている場合、リンク(画像、CSS、JavaScriptなど)をトラバースしてキャッシュする必要があるため、迷惑になることがあります。ただし、関連するすべてのURLを簡単に解析できる特定の独立URLまたは構造化データを使用している場合は、はるかに簡単です。 https://github.com/ZaBlanc/WebImageView

一般的なアプローチは非常に簡単です:

はここに1つ、このような画像指向のソリューションです。あなたのキャッシュが、あなたは喜んでそれを使用し、あなたの方法にすることができた場合は、URLを「取得」しようとするたびに、あなたは常にあなたのキャッシュから

  • それを読ん

    • :それはこのようなものかもしれません
    • キャッシュにそれがない場合は、ファイルを非同期でダウンロードする要求をキューに入れます。
    • ファイルのダウンロードが完了したら、アプリケーションに処理を指示する通知を送信します。

    また、キャッシュの有効期限ポリシーやデータの表示方法については対処する必要がありますが、開始することもできます。

    双方向同期を考えているなら、はるかに難しくなります。あなたはロックと競合について考える必要があります(2人で同じアイテムを同時に更新することができますか?そうであればどうなりますか?)、アトミック性(両方とも更新/追加すれば関連する項目はありますか?データの検証(ユーザーが悪いデータを送信した場合)と、さらに多くのことがあります。それはおそらく誰もまだ私が知っているものを思い付いていない理由です。それは非常に便利ですが、かなり複雑になり、実際にクライアントとサーバーの両方の作業が必要になります。

  • 4

    これは役に立ちますが、同様の要件があり、基本的に同期ボタンが付いたmementoデータベースと呼ばれるアンドロイドアプリが見つかったため、携帯電話を使用してデータを保存してからGoogleドライブスプレッドシートに同期します。スプレッドシートを更新し、ユーザーがAndroid上で同期をクリックすると、ローカルデータベースを更新します。これがマルチユーザー環境で動作するかどうかはわかりませんが、アプリを解剖したり同様の方法を使用することは可能でしょうか?

    よろしく

    (psの私は、私が言及したアプリと提携しない方法で午前)

    +0

    記念データベースアプリはとても「解剖」にできること、それは考えにくい、オープンソースであることが表示されません。 – GenericJon

    関連する問題