ユーザーの位置を継続的に記録しているアプリがあります。位置情報の更新は、ユーザーがたどったルートの正確なマッピングを取得するために非常に頻繁に行われます。電話がスリープ状態になったときにアプリケーションがジオポイントを記録し続けるために、ユーザーが記録を停止したとき、またはで記録を停止したときに解放されるウェイクロックを使用しonDestroy()
ます。
ロケーションマネージャからロケーションリスナーを削除していないことに気付きました。これにより、ユーザーがアプリケーションをリースする前に「記録ルートの停止」ボタンを押すのを忘れた場合、バッテリーが消耗します。onPause()
私の最初の考えはそれを取り除くことでしたonPause()
が、ウェイクロックがありますが(画面はオンではありません)、画面がオフになると呼び出される可能性があります。
この件に関する私の質問は次のとおりです。ロケーションマネージャからロケーションリスナーをいつ削除する必要がありますか?リスナーを解放する必要がありonDestroy()
ますか?または、ロケーションマネージャーの話を聞いている限り、ウェイクロックはまったく必要ありませんか?もしそうなら、これはどのように扱われるべきですか?
私はこれがここのような他の場所で議論されているのを見ました: Android-LocationManager.requestLocationUpdatesを使用するとき、私はWakeLockが必要ですか?
しかし、絶対的な答えはないようです。