2012-03-08 11 views
0

PowerManager.WakeLockを使用して、アプリケーションの特定の状態でデバイスが自動的にスリープ状態にならないようにしています。ただし、ユーザーが電源ボタンを押した場合は、デバイスの電源を切る必要があります。これを行うことができるWakeLockフラグはありますか?または、ユーザーが電源ボタンを押したときに私が受け取れる通知がありますか?電源ボタンが押されたときにPowerManager.WakeLockが無効になる

答えて

3

これを行うためのWakeLockフラグはありますか?

PARTIAL_WAKE_LOCK以外のWakeLockタイプは、この効果があります。 the documentation引用:あなたが部分的wakelockを保持する場合

、CPUは関係なく、すべてのタイマーのも、ユーザが電源ボタンを押した後、実行し続けます。他のすべてのWakelockでは、CPUは動作しますが、電源ボタンを使用してデバイスをスリープ状態にすることはできます。あなたが唯一のWakeLockことを解放し、その後、あなたが完了(例えば、長いファイルのダウンロード)に実行するバックグラウンド作業のための部分的なWakeLockを保持する必要があります

また、ユーザーが電源ボタンを押したときに通知を受け取ることはできますか?

ごめんなさい。

+0

ありがとうございます。私はドキュメンテーションを読み直し、私のコードを見直しました。あなたの説明は私の問題が何かを知るのを助けました。実際にはSCREEN_DIM_WAKE_LOCKを使用していました。 ON_AFTER_RELEASE。私は私の活動が一時停止したときに起床ロックを解除していました。これは、電源ボタンを押したときに発生しました。 ON_AFTER_RELEASEが使用されていたため、画面の電源が直ちにオンに戻ります。 –

+0

Intent.ACTION_SCREEN_OFFとIntent.ACTION_SCREEN_ONは、状態を保存したり、スリープ/スリープ状態に入るユーザーの画面に応答する必要のあるアプリケーションを作成している場合には気になるでしょう。 – ozmank

関連する問題