4

Android アプリケーションを開発しており、消費電力を削減したいと考えています。私が信じている方法は、ユーザーのアクティビティが特定のしきい値期間停止するたびに、電話をスリープモードにすることです。これに関して3つ質問があります。

  1. wakeLock を解放し、他のアプリケーションが wakeLock を保持していない場合、電話機はどのくらいの時間スリープ状態になりますか?

  2. sendMessageDelayed() 関数を使用する場所で複数の HandlerThreads を実行しています。これらのメッセージは、電話機がスリープ モードになった後でも配信されますか?

  3. 電話を機内モードにすると、電話をスリープ状態にするだけでなく、より多くの電力を節約できます。はいの場合、これら 2 つのモードの唯一の違いはセルラー ネットワークの使用であるためです。

4

1 に答える 1

3

wakeLock を解放し、他のアプリケーションが wakeLock を保持していない場合、電話機はどのくらいの時間スリープ状態になりますか?

決定的な答えはありませんが、個人的な経験から言えば、30 秒から 1 分以内に発生する可能性が高いと言えます。

sendMessageDelayed() 関数を使用する場所で複数の HandlerThreads を実行しています。これらのメッセージは、電話機がスリープ モードになった後でも配信されますか?

デバイスを起動してメッセージを送信すると言っているものを見たことがないので、私は本当にそれを当てにしません。いつでもテストできますが、ドキュメントには動作するとは記載されていないため、動作するかどうかは信頼できません。

電話を機内モードにすると、電話をスリープ状態にするだけでなく、より多くの電力を節約できます。はいの場合、これら 2 つのモードの唯一の違いはセルラー ネットワークの使用であるためです。

スリープモードと機内モードにすると、スリープモードのみよりもバッテリーを節約できます。

その理由は、CPU がほとんどスリープ状態になっていても、携帯電話はセルラー ネットワークとの常時接続を維持して、テキストまたは電話を受信したかどうかを知る必要があるためです。これを行うには、バッテリーを使用してアンテナを常にオンにしておく必要があります。機内モードにすると、基本的にアンテナがオフになり、電話はその機能にバッテリーを使用しなくなります.

于 2012-01-27T10:20:00.853 に答える