每当我的一项活动正在运行并将手机插入电源时,我都想保留屏幕。我知道Wakelocks很棘手,因此我正在寻找有关如何实现此特定目标的示例或一些文档。

有帮助吗?

解决方案

不要为此使用唤醒锁 - 只需设置并清除窗口标志 WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON 根据当前是否插入设备。您可以用 Activity.getWindow().addFlags().

因此代码将是

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

其他提示

一个 WakeLock这不是那么棘手,只需确保检查它在打电话时尚未持有 acquire() 并确保它 打电话时举行 release(). 。您还想确保您有 android.permission.WAKE_LOCK 在您的清单文件中定义了权限。

如果您只想在手机插入手机时获取Wakelock,则可以注册 BroadcastReceiver 看着 android.intent.action.ACTION_POWER_CONNECTEDandroid.intent.action.ACTION_POWER_DISCONNECTED 意图。我自己还没有使用这些,因此可能需要获得一些申请许可,然后才能真正起作用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top