我使用唤醒锁来保持显示。 但是,当应用程序结束时,显示屏也会关闭。 我希望在应用程序结束后继续使用它。
我该怎么办?
答案 0 :(得分: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;
}
当你松开唤醒锁时,这将使屏幕保持亮起,好像有人与设备交互(按下电源按钮,触摸屏幕等)。此时,如果没有与设备的进一步交互(屏幕变暗,然后变暗),将发生正常断电。
我
如果有帮助,请告诉我。
THX
的 强> 的 ** * ** * ** * 的** * ** * *** 强> 加的 * ** * ** * ** * ** * 强>
如果你想在屏幕变暗后唤醒手机,你可以使用以下标志创建你的唤醒锁。如果您有一个广播接收器并且想要在事件发生时打开屏幕以便用户可以立即看到UI(通知,Toast,布局等),这是很好的。
PowerManager.WakeLock wakeLock = pm.newWakeLock(
pm.ACQUIRE_CAUSES_WAKEUP|pm.ON_AFTER_RELEASE|pm.SCREEN_DIM_WAKE_LOCK, "My wakelook");
答案 1 :(得分:0)
您需要多长时间才能继续使用显示屏?只是一段时间,或直到某个事件发生?
答案 2 :(得分:0)
应用程序结束时不要释放唤醒锁。您可以安排活动一段时间,以保持屏幕开启。但通常这是一个不好的做法,因为持有完整的唤醒锁可能不仅可以阻止屏幕,还可以阻止其他硬件进入睡眠状态。