2016-04-27 122 views
2

我有一個正在運行的服務接收事件。當收到一個事件時,我需要該服務來喚醒屏幕並運行一個活動。從服務的Android喚醒屏幕

目前,它的工作使用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已被棄用。我想知道使用喚醒鎖定的替代方法是什麼?如果不使用喚醒鎖,我一直無法工作。

回答

0

您可以將FLAG_TURN_SCREEN_ON添加到您的窗口標誌。

當設置爲窗口被添加或變爲可見時,一旦窗口被顯示,則系統將捅動力管理器的用戶活動(就好像用戶已經喚醒設備一樣)以打開屏幕。

這樣,當您從服務啓動屏幕時,您的活動將自動喚醒屏幕,從而無需使用喚醒鎖。