2012-01-27 23 views
4

私はアンドロイドアプリケーションを開発しており、消費電力を削減したいと考えています。私が考えている方法は、ユーザーの活動が特定の閾値期間中止まると、電話をスリープモードにすることです。私はこれに関して3つの質問があります。Handler.sendMessageDelayed()は、電話がスリープ状態になると機能しますか?

  1. 私はwakeLockや他のアプリケーションが電話がスリープ状態に行くだろうどのくらいの時間が経過した後wakeLockを保持しているリリースか?

  2. 私はsendMessageDelayed()関数を使用して複数のHandlerThreadを実行しています。電話機がスリープモードになってもこれらのメッセージが届くのでしょうか?

  3. 携帯電話を飛行機モードにすると、電話をスリープ状態にするのではなく、より多くの電力を節約できますか?そうであれば、その2つのモードの唯一の違いはセルラネットワークの使用であるからです。

答えて

3

私はwakeLockや他のアプリケーションが電話がスリープ状態に行くだろうどのくらいの時間が経過した後 wakeLockを保持しているリリースか?

確かに確定的な回答はありませんが、個人的な経験からは、30秒〜1分以内に起こる可能性が高いと思います。

私は sendMessageDelayed()関数を使用して複数のHandlerThreadを実行しています。電話がスリープモードに移行した後でも、これらのメッセージは に届くでしょうか?

メッセージを送信するためにデバイスを起動するとは何も見たことがないので、私は本当にそれにカウントしません。あなたはいつでもそれをテストすることができますが、ドキュメンテーションがそれを望んでいないので、私はそれが動作するとは信じません。

携帯電話を飛行機モードにすると、電話を寝かせるだけではなく、 より多くの電力を節約できますか?はいの場合は、その2つのモードの違いがセルラーネットワークの使用であるため、 が違います。

スリープモードと飛行機モードにすると、スリープモードよりもバッテリが節約されます。

その理由は、CPUがかなり眠っているにもかかわらず、電話機は、テキストまたは電話を受けるかどうかを知るために、携帯電話ネットワークとの常時接続を維持する必要があるからです。これを行うには、アンテナを常にオンに保つためにバッテリを使用する必要があります。飛行機モードにすると、基本的にアンテナはオフになり、電話機はその機能のためにバッテリを使用しません。

+0

Thanks Jakar。質問2と質問3に回答した参考資料を教えてください。 – crazyaboutliv

+0

質問3については、私は参照を使用しませんでした。私はちょうどそれを論理的に見ました - 電話が何か他の電源を保たなければならないなら、それはより多くのバッテリーを使用しなければなりません。質問2については、スリープモードに関するドキュメントは実際にはありませんが、[このページ](http://developer.android.com/reference/android/os/Handler.html)を読みました。デバイス。確実にデバイスを起動させるのは、RTC_WAKEUPを備えた 'BroadcastReceiver'の' Alarm'セットだけです。 – Jakar

+0

丁寧な答えです。スクリーンオフ時にsendMessageDelayed()が動作しない理由を説明しています。 –

関連する問題