2010-12-07 72 views
34

WAKELOCKとFLAG_KEEP_SCREEN_ONの違いは?目を覚まし画面を維持

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

は2間とパフォーマンスの面で技術的な違いは何ですか、

mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, 
       getClass().getName()); 

によってまたはウィンドウにFLAG_KEEP_SCREEN_ONを追加することにより、wakelockを使用することによって達成することができますとバッテリーの寿命はお勧めですか?

答えて

40

wakelockでは、画面をオフにすることなく電話機をスリープ状態にするなど、より多くの制御を行うことができます。アプリケーションには、ウォークロックの許可を保持する必要があります。

したがって、ウィンドウが表示されている間は画面をオンにしておきたい場合は、FLAG_KEEP_SCREEN_ONをお勧めします。

+0

FLAG_KEEP_SCREEN_ONは「USBデバッグ」がチェックされている場合にのみ機能しますので、これについて質問を投稿しました... http://stackoverflow.com/questions/15189767/keep-screen-on-inactivity- – Ted

+9

@テッド:あなたがここに書いたことは、少なくとも2つの他の質問に間違っています。 'FLAG_KEEP_SCREEN_ON'は、それが何を記述しているかについて完璧に機能します。画面を維持するだけです。これが動作するために必要なアクセス許可も、デバイスがデバッグモードの場合にのみ動作しません。すべてのデバイスで動作するはずですが、そうでない場合はデバイスのエラーです) – caw

2

Wakelockは多くの異なるオプションがあるため、あいまいです。フラグFLAG_KEEP_SCREEN_ONはそれだけです。

| Flag Value    | CPU | Screen | Keyboard | 
----------------------------------------------------- 
| PARTIAL_WAKE_LOCK  | On* | Off | Off  | 
| SCREEN_DIM_WAKE_LOCK | On | Dim | Off  | 
| SCREEN_BRIGHT_WAKE_LOCK | On | Bright | Off  | 
| FULL_WAKE_LOCK   | On | Bright | Bright | 

Androidの仕様、および正確な実装のための他の回答のためwakelockまたはPowerManagerを参照してください。

0

ウェイクロックは、画面がオフのときに仕事をするために実行しているCPUを維持するためにバックグラウンドサービスに使用されています。あなたは活動の中で目覚めて ロックを決して使うべきではありません。ウェイクロックを使用するには、アプリケーションのマニフェストファイルにWAKE_LOCK権限を追加する必要があります。


FLAG_KEEP_SCREEN_ON

ウェイクロックとは異なり、特別な 許可なく上のCPUを続けるであろう、オンスクリーンを維持するために 活動に使用されています。サービスでFLAG_KEEP_SCREEN_ON を決して使用しないでください。

乾杯!

関連する問題