2011-10-14 7 views
2

私のアプリケーションでは、表示されたMapviewの中心の緯度/経度値をテキストボックスに更新します。私は毎秒ハンドラにメッセージを送信するTimerTaskを使ってこれをやっています。TimerTaskとHandler、バッテリ消費に対する影響

これはCPU負荷/バッテリ消費の面で非効率的な方法ですか?

ビューの中心が変わるたびにテキストを更新する方が効率的な方法はありますか?

これはGPSに接続されていません。私のアプリの1つのモードでは、GPSをオフにして地図をスクロールしてパンすることができます。

答えて

6

これはCPU負荷/バッテリ消費の点でこれを非効率的な方法ですか?

私はあなたがTimerTaskに関与暗黙のバックグラウンドスレッドを避けることができますので、(自分のタイミングループを作成するためにpostDelayed()経由で自身を再スケジュール)RunnableをスケジュールするpostDelayed()を使用すると思います。さもなければ、これは特に非効率的ではない。

+0

ありがとうございます。一見すると、MapOverlay(com.google.android.maps.Overlayを拡張)の私の描画は、バッテリーにドレインを置くものです。その '描画'方法は、数ミリ秒ごとに私のコントロール外で実行されます。前回からポジションが変更されていない場合は、集中的な計算を省略します。助言がありますか? – NickT

+0

@NickT:私の頭の上から外れる、いいえ。 Google Mapsのものがクローズドソースであるため、オーバーレイを再描画する原因を特定することは困難です。まだ行っていない場合は、アプリのメソッドトレースを収集し、Traceviewで調べます。これは手がかりを与えるかもしれません。 – CommonsWare

+0

ありがとう、Traceview - 私はそのツールの名前を覚えようとしてきました。今私は知っている! – NickT

関連する問題