ウェイクロックを使用して、ディスプレイをオンに保ちます。ただし、アプリを終了すると表示も消えます。アプリ終了後も継続したい。
私は何をすべきか?
あなたがしたいことは、以下を参照してください.On_AFTER_RELEASEフラグを使用することです。
PowerManager pm;
PowerManager.WakeLock wakeLock;
// Put the next 5 lines in a method that is called when you want to acquire a wakelock //or in the OnREceive() of a broadcast receiver.`
PowerManager pm = (PowerManager)
context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = pm.newWakeLock(
pm.ON_AFTER_RELEASE|pm.SCREEN_DIM_WAKE_LOCK, "My wakelook");
wakeLock.acquire();
...Do Stuff here
//Override the onDestroy of your activity to release the wakelock when it is destroyed.
@Override
protected void onDestroy() {
super.onDestroy();
wakelock.release;
}
これにより、ウェイクロックを解除した直後に、誰かがデバイスを操作した (電源ボタンを押した、画面に触れたなど) かのように、画面が点灯し続けます。その時点で、デバイスとの対話がそれ以上ない場合は、通常の電源オフが発生します (画面が暗くなり、その後暗くなります)。
私
それが役に立ったかどうか教えてください。
どうも
** * ** * ** * ** * ** * ***追加* ** * ** * ** * ** *
画面が暗くなった後に電話をウェイクアップしたい場合は、次のフラグを使用してウェイクロックを作成できます。これは、ブロードキャスト レシーバーがあり、イベントが発生したときに画面をオンにして、ユーザーがすぐに UI (通知、トースト、レイアウトなど) を確認できるようにする場合に適しています。
PowerManager.WakeLock wakeLock = pm.newWakeLock(
pm.ACQUIRE_CAUSES_WAKEUP|pm.ON_AFTER_RELEASE|pm.SCREEN_DIM_WAKE_LOCK, "My wakelook");
アプリケーションの終了時にウェイクロックを解放しないでください。画面をオンにしておく必要がある期間、イベントをスケジュールすることができます。ただし、完全なウェイクロックを保持すると、画面だけでなく他のハードウェアもスリープ状態にならない可能性があるため、一般的には悪い習慣です。
また、ディスプレイをオンにしておく必要がある時間はどれくらいですか? しばらくの間だけですか、それとも特定のイベントが発生するまでですか?