每当我的一项活动正在运行并且手机已插入电源时,我想保持屏幕开启。我知道 Wakelocks 很棘手,所以我正在寻找有关如何实现此特定目标的示例或一些文档。
问问题
4586 次
2 回答
12
不要为此使用唤醒锁 - 只需WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
根据设备当前是否插入来设置和清除窗口标志。您可以使用Activity.getWindow().addFlags()
.
所以代码是
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
于 2010-10-17T03:08:16.067 回答
4
AWakeLock
并不是那么棘手,只需确保在您调用时检查它是否已被持有,acquire()
并确保在您调用时它已被持有release()
。您还需要确保您拥有android.permission.WAKE_LOCK
清单文件中定义的权限。
如果您只想在手机插入时获取 WakeLock,您可以注册一个 watch BroadcastReceiver
for the android.intent.action.ACTION_POWER_CONNECTED
and android.intent.action.ACTION_POWER_DISCONNECTED
intents。我自己没有使用过这些,因此在这些意图真正起作用之前,您可能需要获得一些应用程序权限。
于 2010-10-16T18:40:00.613 回答