我想在我的某个活动正在运行并且手机已插入电源时保持屏幕开启状态。我知道Wakelocks很棘手,所以我正在寻找一个关于如何实现这个特定目标的示例或文档。
答案 0 :(得分:11)
不要为此使用唤醒锁定 - 只需根据设备当前是否已插入设置并清除窗口标记WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
。您可以使用Activity.getWindow().addFlags()
设置标记。
所以代码是
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
答案 1 :(得分:4)
WakeLock
并不是那么棘手,只要确保在致电acquire()
时检查它是否已被保留,并确保当您 时 致电release()
。您还需要确保在清单文件中定义了android.permission.WAKE_LOCK
权限。
如果您只想在插入手机时获取WakeLock,则可以注册一个BroadcastReceiver
来监听android.intent.action.ACTION_POWER_CONNECTED
和android.intent.action.ACTION_POWER_DISCONNECTED
意图。我自己没有使用过这些,所以在这些意图真正起作用之前,你可能需要获得一些应用程序许可。