0

データをサーバーと同期するアプリを完成させました (バックグラウンドで SyncAdapter を実行します)。携帯電話にインストールし、バックグラウンドで実行しました (携帯電話はほとんど使用しませんでした)。アプリケーションのバッテリー使用量の 23% がアプリに属していることがわかったので、バッテリーの使用量を本当に減らす必要があります。

現在、同期時間を 30 秒に設定しています。これはマルチユーザー アプリであり、他のユーザーがあなたと対話する場合に通知を受け取る場合、同期時間をあまり長く設定することはできません (実際には、バッテリーの使用量が表示されるまで短くしたかったのです)。

各同期では、常にサーバーに変更を要求し、ローカル データベースの変更をチェックします。ローカル データベースに変更がある場合はサーバーに送信され、サーバーから変更を取得するとローカル データベースに適用されます。

バッテリーの使用量を減らすためのヒントを知っている人はいますか?

4

2 に答える 2

6

おそらく、ポーリングの代わりにプッシュを使用してGCM ( Google Cloud Messaging ) を実装するのが最善の方法です。

このようにして、何か新しいことが起こったときに「くすぐり」を得ることができ、サーバーにデータを要求したときに知ることができます。

于 2012-08-27T14:24:42.807 に答える
1

30 秒ごとのネットワーク ポーリングは非常に積極的です。Google のこの記事を読むことをお勧めします: http://developer.android.com/training/effective-downloads/index.html

ただし、本当に頻繁にネットワークを要求する必要がある場合は、魔法のトリックは見当たりません...

于 2012-08-27T14:24:15.473 に答える