Android:Android处于睡眠模式时收听数据包数据

时间:2012-04-17 01:51:49

标签: android tcp cpu sleep

正如上一个问题的答案中所述,即使CPU在Android设备上进入睡眠状态,CDMA和GSM无线电也会保持开启状态。 我的问题是......

  1. 收到来电时,是什么唤醒了CPU /手机?
  2. 是否存在类似的机制,即使在手机进入睡眠模式后,即使在手机进入睡眠模式后,通过活动的TCP连接接收数据,也可以唤醒我的应用程序?

2 个答案:

答案 0 :(得分:1)

您可能希望研究向您的设备发送推送通知(如果您不特别需要TCP)。

从Google(http://code.google.com/android/c2dm/)查看(免费)Android Cloud to Device Messaging(C2DM)服务。

设置需要一些工作,并且仅支持2.2+,但确实简化了客户端/服务器架构。

答案 1 :(得分:1)

CPU处于睡眠状态时无法接收数据。

需要偶尔唤醒CPU以查看是否有新数据。在您的代码中检查新数据,如果有新数据,您可以保持清醒并继续进行处理。

您肯定想了解BroadcastReceiver和Android警报。基本上,你可以告诉Android每5分钟发送一次警报或其他什么,即使它正在睡觉。您的BroadcastReceiver在从Android获取警报时唤醒CPU,并保持清醒足够长的时间以检查您是否有新数据,或者您正在尝试做什么。如果您有新数据,则可以告诉CPU保持清醒,然后您可以关闭并处理新数据。

这是reasonable tutorial。当然,Android Developer文档也很有帮助。