最近グーグルはプッシュトゥデバイスサービスを導入しましたが、それは2.2以降でのみ利用可能です。
アプリに同様のシステムが必要ですが、制限を回避しようとしています。
問題はバッテリーの寿命です。サーバーの変更についてユーザーにすぐに通知する必要があるため、バックグラウンドで動作するサービス(標準のAndroidサービス)を実装し、サーバーに更新を照会することを考えました。
もちろん、サーバーにクエリを実行すると、1秒ごとでも、バッテリーだけでなく多くの帯域幅が必要になるため、私の質問は次のとおりです。サーバーが一定期間応答を保持している場合、違いはありますか?(Cometタイプのajaxリクエストの背後にある考え方)
このように動作します:
- デバイスがデータ更新の要求を送信します
- サーバーはリクエストを取得し、1分間ループに入り、各反復で更新があるかどうかを確認します
- 更新がある場合、サーバーは更新とともに応答を送り返します
- そうでない場合、サービスは次の反復に進みます。
- 1分後、データがまだ利用できないという応答が最終的に送信されます。
- 応答後(空であるかデータがあるかに関係なく)、Androidは別のそのようなリクエストを起動します。
確かに帯域幅のコストは低くなりますが、バッテリーの消費量は少なくなりますか(またはさらに多くなりますか?)