我搜索过一段时间,但对GC与唤醒锁的真正功能有疑问。
唤醒锁是否阻止设备进入会阻止网络层关闭的睡眠模式 - 因此它可以首先从网络级别接收GCM消息
或者当GCM启用并正常工作时(通过清单权限,正确编码的GCM代码等),它将与Google建立网络连接以用于GCM,并且只需要从UI或应用程序级别转到唤醒锁屏幕重新开启,以便您在收到后可以做其他事情(与用户交互等)。
或者没有/上面的一些(请详细说明:)
由于 geremy
答案 0 :(得分:0)
根据我的说法,您需要获取WAKE_LOCK
才能启动GCM Service
,然后将其释放,
因为你的CPU在开始服务之前不应该睡觉。
屏幕关闭后,CPU将在一段时间内进入睡眠模式。当您的设备处于睡眠模式时,您的线程将被暂停。
如果你获得了唤醒锁并且没有释放它,它肯定会消耗大量的电池。
您的设备处于空闲模式时,您可以收到GCM条消息。
当消息到达时,取决于您的代码是否唤醒设备和显示通知。
您还可以使用标记delay_while_idle
来延迟消息,直到设备退出空闲状态。
您可以通过注册BroadcastReceiver
来处理邮件请参阅SO:
上的问题和答案