3

我想要一个正在侦听数据的 Android 服务(我尝试过 TCP 和 UDP)以在数据到达时唤醒服务/电话。

目前,当 IP 数据到达并且该数据丢失时,电话会保持睡眠状态。这对安卓来说正常吗?我每天几次看到 2 小时以上的睡眠,当我睡着时,我会睡 7 小时以上。

GCM 是否提供了一种解决方案,可以在消息到达时唤醒服务/电话。

我需要在从服务器发送消息后的几秒钟内显示消息。

这只能通过让 CPU 全天运行来实现吗?数据到达时GSM调制解调器没有中断吗?

4

1 回答 1

4

据我了解,如果您通过移动数据与服务器建立了出色的套接字连接,则该套接字连接会在睡眠模式下保持,并且传入的数据包会将手机从睡眠模式(短暂)唤醒以传递数据。

WiFi并非如此(可能也不适用于硬连线以太网)。你需要持有 aWakeLock和 a WifiLock

GCM 是否提供了一种解决方案,可以在消息到达时唤醒服务/电话。

对,但是...

我需要在从服务器发送消息后的几秒钟内显示消息。

首先,GCM 没有服务级别保证。我不知道有任何解决方案,包括您可能自己推出的任何解决方案(例如,MQTT)。

其次,您不知道设备是否能够接收任何此类消息(GCM 或其他),因为设备可能已关闭、处于飞行模式等。

于 2013-06-03T13:20:39.410 回答