以下を達成する必要がある Android アプリケーションを最適化しようとしています。
1 時間ごとに GPS 位置情報を取得し、doSomeWork()
デバイスが @MINIMUM_DISTANCE を超えて移動した場合はいつでも、更新頻度を 5 分程度に増やして移動を記録します。移動が終了したら、1 時間ごとの更新に戻ることができます。
これで、AlarmManager を 1 時間ごとに起動することで、最初の要件を処理できます。これは、このタスクを達成するための優れたバッテリ効率の良い方法です。ただし、2番目の要件を最もよく達成する方法がわかりません。
するべきか:
1 時間ごとのタイマーと連携して 5 分ごとに起動する AlarmManager を登録しますか? 毎回 LocationManager を登録し、場所の引き離しを試み、以前の場所と比較して移動が発生したかどうかを判断します。
1 時間ごとのウェイクアップ後に、必要な最小移動に等しい最小距離パラメーターを使用して LocationManager を登録します。
他の何か?
それぞれのアプローチの長所と短所を見ることができます。
LocationManager の最小距離パラメーターを使用する方がより簡潔な解決策のように思えますが、バッテリーの消耗が心配です。これにより、アプリケーションが更新を受信しているかどうかに関係なく、常に GPS が熱くなりますか? また、受信者を登録するのに最適な場所がどこなのかもわかりません。サービスを 100% 常に実行し続けることはお粗末なことです (ほぼ不可能であることは言うまでもありません)。
はい、私はAndroidが初めてです!LocationManager の動作をテストしようとしています。
前もって感謝します。