1

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

  1. 接到电话时,是什么唤醒了 CPU / 电话?
  2. 当通过与服务器的活动 TCP 连接接收到数据时,是否有类似的机制来唤醒我的应用程序,即使在手机进入睡眠模式之后也是如此?
4

2 回答 2

1

您可能想考虑向您的设备发送推送通知(如果您不是特别需要 TCP)。

查看来自 Google (http://code.google.com/android/c2dm/) 的(免费)Android 云到设备消息传递 (C2DM) 服务。

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

于 2012-04-17T01:59:26.827 回答
1

CPU 休眠时无法接收数据。

CPU需要时不时的唤醒一次,看看有没有新的数据。在您检查新数据的代码中,如果有新数据,您可以保持清醒并继续进行处理。

您肯定想了解 BroadcastReceiver 和 android 警报。基本上,您可以告诉 Android 每 5 分钟或其他时间向您发送一次警报,即使它正在睡觉。当您的 BroadcastReceiver 收到来自 android 的警报时,它会唤醒 CPU,并保持足够长的时间来检查您是否有新数据或您正在尝试做的任何事情。如果你有新数据,你可以告诉 CPU 保持清醒,然后你就可以开始处理新数据了。

这是一个合理的教程。当然,Android 开发者文档也很有帮助。

于 2012-04-17T02:02:14.550 回答