2

シナリオ:私のアプリには多くのアクティビティがあります。最後に、ユーザーはワンクリックですべてのデータをアップロードします。

問題:ユーザーが移動中にサービスを停止した場合 (インターネット サービス/接続不良)、データをアップロードできなかった場合に問題が発生する可能性があります。

この文脈では、何が最も効率的なアプローチであるかを知りたいです。

一つの方法を考えました。接続が悪い/サービスがない場合は、データを SQLite にローカルに保存します。ユーザーが次回アプリを開いたときにスレッドを維持して、サービス/接続が利用可能かどうかを確認します。はいの場合は、すぐにアップロードされます。

コメントお待ちしております。

4

2 に答える 2

3

同期フラグを使用してすべてのデータをSQLiteに保存します。サービスを使用して、同期されていないフラグを常にチェックし、バックグラウンドでサーバーに送信して、同期が完了したときにフラグを更新してみてください。

SQLiteから直接SQLServerに同期している場合の別のアプローチでは、トランザクションまたはバッチ更新を設定できるため、接続に失敗した場合はトランザクションが元に戻ります。

于 2012-09-05T10:24:39.210 に答える
2

データをアップロードする方法を学ぶには、Google I / O 2012を視聴することをお勧めします-優れたアプリを素晴らしいものにする:エキスパートAndroid開発者向けのより高度なトピック: http ://www.youtube.com/watch?v = PwC1OlJo5VM#16:43から。効率とバッテリー寿命への影響を扱います。

ビデオを要約すると:

電話の無線がどのように機能するかにより、複数の小さなアップロードではなく1つの大きなアップロードを実行し、ネットワークへのアクセスを最小限に抑えるようにしてください。

下位レベルでは、user370305が言ったように、データのアップロードを試みます。接続の遅延がない場合は、ユーザーが次にアプリを開くか、アップロードボタンをクリックしたときにアップロードが遅延します。

于 2012-09-05T10:24:58.040 に答える