6

10 秒間隔で部分的な wake lock を取得するアプリケーションに問題はありますか。これの私のユースケースは、デバイスの加速度計を介してユーザーの動きを継続的に監視できることです。基本的に、10秒ごとにアラームによって呼び出されるサービスがあります。

このサービスはウェイクロックを取得し、加速度計からいくつかの読み取り値を取得して現在の移動ステータスを判断してから、ウェイクロックを解放します。サービスの合計有効期間は約 4 秒です。

私の理解では、これにより、デバイスは毎分約 24 秒間起動状態に保たれます。理想的ではありませんが、アプリケーションの存続期間全体にわたって一定の wake lock を保持するよりも、これがより良い方法であることを願っています。

一方で、このような短い時間でウェイクロックを取得して解放する行為が、バッテリー寿命に悪影響を与える可能性はありますか?

どんな入力でも大歓迎です。

4

2 に答える 2

2

コメントが示しているように、これは本当に良い考えではありません。「市場での 1 つ星評価」タイプのように、良くない考えです。

加速度計はランニング アクティビティ (ゲームなど) で使用するように設計されており、それだけです。あなたがしようとしているモードで使用するようには絶対に設計されていません。

また、 を離すとすぐにデバイスがスリープ状態に戻ると想定していますWakeLock。それは真実かもしれませんし、そうでないかもしれません。CPU を 40% だけオンにすることを義務付けている場合でも、使用可能な時間の 40% を大幅に超えて CPU の電源をオンにしていることがわかると思います。

2009 年の Google I|O カンファレンスでの Android の電力使用に関する Jeff Sharkey のプレゼンテーションをご覧になることを強くお勧めします。

于 2011-04-14T18:09:26.757 に答える
0

アプリ MyTracks を使用したことがありますか? http://code.google.com/p/mytracks/

最後に確認したところ、ユーザーがアクティブなパスを持っている場合、ウェイク ロックが使用されます。

私はあなたと同じ問題を抱えています.Wake Lockを使用したくないのですが、OSが途中でアプリを強制終了すると、アプリが台無しになります. 現在、1 時間あたり約 10% のバッテリー寿命を犠牲にしてそうしていますが、それほど悪くはありません。確かに素晴らしいとは言えませんが、私たちの平均パスはわずか約 20 分です。そして、それは機能します。

Alarm Manager を使用する方が良い方法のように思えます。この種の状況での使用方法の良い例はありますか?

于 2012-12-05T16:45:23.743 に答える