2013-08-07 118 views
4

我已經搜索了一下,但有一個關於GCM的wakelock的真正功能的問題。wakelock,深度睡眠和gcm

是否激活鎖定防止設備進入睡眠模式會阻止關閉網絡層 - 因此它可以在第一時間收到來自網絡的水平GCM消息

或者當GCM已啓用並正在運行(通過清單權限,正確編碼的GCM代碼等),無論如何,它都將與Google建立網絡連接,並且只需從UI或應用程序級別啓用wakelock即可將屏幕重新打開,以便您可以在收到它之後做其他事情(與用戶交互等)。

或無/上述一些(請詳細說明:)

感謝 geremy

回答

0

據我,你需要獲得WAKE_LOCK開始GCM Service然後鬆開, 你的CPU不應該睡開始服務之前。

屏幕關閉後CPU會在一段時間內進入睡眠模式。當您的設備處於睡眠模式時,您的線程將被暫停。

如果您獲取喚醒鎖定並且不釋放它,它肯定會消耗大量的電池。

當您的設備處於空閒模式時,您可以收到GCM消息。

消息到達時,取決於您的代碼是否喚醒設備並顯示通知。

您還可以通過使用標記delay_while_idle來延遲消息,直到設備退出空閒狀態。

您可以通過註冊BroadcastReceiver

請參閱等問題回答關於處理消息:

Wakelock in deep sleep

Power management

GCM in standby

WAKE_LOCK