Android唤醒屏幕来自服务

时间:2016-04-27 23:45:03

标签: android service wakelock

我正在运行一个接收事件的服务。收到事件后,我需要服务唤醒屏幕并运行活动。

目前,它正在使用wakeLock参数:

PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP)

我在开始活动之前使用它来唤醒屏幕。活动还有标志:

getWindow().addFlags(
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

但是,不推荐使用SCREEN_BRIGHT_WAKE_LOCKFULL_WAKE_LOCK。我想知道使用唤醒锁的替代方法是什么?没有使用唤醒锁,我无法让它工作。

1 个答案:

答案 0 :(得分:0)

您可以将FLAG_TURN_SCREEN_ON添加到窗口标记中。

  

当设置为添加或显示窗口时,一旦显示窗口,系统将激活电源管理器的用户活动(就像用户已唤醒设备一样)以打开屏幕。

这样,当您从服务中启动屏幕时,您的活动将自动唤醒屏幕,无需使用唤醒锁。