唤醒锁,深度睡眠和gcm

时间:2013-08-07 03:15:47

标签: android google-cloud-messaging wakelock

我搜索过一段时间,但对GC与唤醒锁的真正功能有疑问。

唤醒锁是否阻止设备进入会阻止网络层关闭的睡眠模式 - 因此它可以首先从网络级别接收GCM消息

或者当GCM启用并正常工作时(通过清单权限,正确编码的GCM代码等),它将与Google建立网络连接以用于GCM,并且只需要从UI或应用程序级别转到唤醒锁屏幕重新开启,以便您在收到后可以做其他事情(与用户交互等)。

或者没有/上面的一些(请详细说明:)

由于 geremy

1 个答案:

答案 0 :(得分:0)

根据我的说法,您需要获取WAKE_LOCK才能启动GCM Service,然后将其释放, 因为你的CPU在开始服务之前不应该睡觉。

屏幕关闭后,CPU将在一段时间内进入睡眠模式。当您的设备处于睡眠模式时,您的线程将被暂停。

如果你获得了唤醒锁并且没有释放它,它肯定会消耗大量的电池。

您的设备处于空闲模式时,您可以收到GCM条消息。

当消息到达时,取决于您的代码是否唤醒设备和显示通知。

您还可以使用标记delay_while_idle来延迟消息,直到设备退出空闲状态。

您可以通过注册BroadcastReceiver

来处理邮件

请参阅SO:

上的问题和答案

Wakelock in deep sleep

Power management

GCM in standby

WAKE_LOCK