1

我使用唤醒锁来保持显示开启。但是,当应用程序结束时,显示也会关闭。我想在应用程序结束后继续使用它。

我该怎么办?

4

3 回答 3

2

您要做的是使用 .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(通知、Toast、布局等),这很好。

PowerManager.WakeLock wakeLock = pm.newWakeLock(
             pm.ACQUIRE_CAUSES_WAKEUP|pm.ON_AFTER_RELEASE|pm.SCREEN_DIM_WAKE_LOCK, "My wakelook");
于 2012-06-03T17:54:28.153 回答
0

您需要显示屏保持多长时间?只是一段时间,还是直到某些事件发生?

于 2012-06-03T17:46:37.743 回答
0

应用程序结束时不要释放唤醒锁。您可以在需要保持屏幕开启的时间段内安排活动。但通常这是一个不好的做法,因为持有完整的唤醒锁可能不仅会阻止屏幕,而且会阻止其他硬件进入睡眠状态。

于 2012-06-03T17:52:07.790 回答