1

私は初心者です。ロケーションベースの通知を生成できるアプリケーションを開発したいと考えています。Android開発者のWebサイトで、バッテリー寿命とデータ交換のバランスを維持するために考慮すべきことを見つけました

  1. 新しい更新の頻度
  2. 場所の更新をリッスンするウィンドウ。

requestLocationUpdates() を呼び出すことで頻度を制御できることはわかっています。私の質問は、更新をリッスンするウィンドウをどのように制御できますか? LocationListener クラスの onLocationChanged() メソッドから位置情報の更新を取得したら、removeUpdates() を使用して更新のリッスンを停止する必要があるということですか??

ありがとう

4

2 に答える 2

1

GPS デバイスは、requestLocationUpdates() に登録したときにのみ動作 (および電力の消費) を開始します。

理論的には、アップデートがあまり頻繁でない場合、GPS はアップデート間でオフにすることができます。たとえば、5 分ごとに更新を要求した場合、GPS は約 4 分 30 秒間オフになる可能性があります。次の場所を取得するのに間に合うようにスイッチを入れます。5 秒ごとに新しい場所のリクエストを設定すると、GPS は更新の間にオフになりません。

私は GPS を常に起動させ、データベースに位置を記録するアプリケーションを 1 つ持っています。このアプリケーションは、地図を表示し、記録されたトラックを描画することもできます。私の経験では、リアルタイムでトラックが変化するマップを描画するために使用される電力は、GPS によって使用される電力よりもはるかに高くなります。

幸運を

于 2012-09-28T17:00:01.217 に答える
0

新しい場所が必要なくなった場合にのみ、更新のリッスンを停止する必要があると思います。新しい場所が 1 つだけ必要な場合は、すぐに聞くのをやめるのが最善の方法です。(ユーザーの移動に応じて) より多くの場所を取得するには、 で場所の更新のリッスンを開始し、 でリッスンをonResume停止することをお勧めしますonPause。つまりonLocationChanged、アクティビティが他のすべてのアクティビティの前にある (表示されている) 場合にのみ呼び出されます。

結論として、必要なウィンドウを管理するアクティビティには、上記のようにこれらの呼び出しが必要です。

于 2012-09-28T16:59:36.103 に答える