Androidでキューサービスを実装しました。キューサービスとWi-Fi /データ接続イベントに基づいて状態が変更されます。Androidでデータアップロードを効果的にキャッシュする
私は、リモートURLに投稿されるトランザクションをキューに入れます。デバイスにデータまたは無線LAN接続がある場合、キューが空になるか切断イベントが発生するまで、キューを反復してデータをURLに送信します。
私は自分のアプリにログインし、飛行機モードを有効にし、データを生成し、飛行機モードをオフにして、取引を掲載することができます。何千ものトランザクションがあっても、遅くなることはありません。 (私はちょっとそれを噛んでみようとしていた)
入力:低レセプション! 3G受信が低すぎると、アプリの動作が非常に遅くなります。 (はい、すべてのアップロードはuiスレッドから発生します)。この遅さの原因は、サーバーへのポストと非常に時間がかかり、時には失敗することが関係しているようです。
私の質問は、どうすればこの問題を解決できますか?信号品質をチェックしますか?既知の住所に投票しますか? Gmailなどの他のアプリはこれをどのように解決しますか?これは一般的なシナリオでなければなりません!
「接続はありますが、サーバーが遅い、到達不能なetC」のような場合には、計画を立てる必要があります。2つのアイデア:1.キャッシュを維持し、最大サイズを定義します(意味:イベントが投げ捨てられても気にしないでください)。 2. 1回のリクエストにかかる時間を測定する。イベントの生成に要する時間よりも時間が長い場合は、接続またはサーバーの負荷を引き延ばすために時間を長くしてください。 – vasquez