我想要一个Android服务,它正在侦听数据(我已尝试过TCP和UDP),以便在数据到达时唤醒服务/电话。
目前,当IP数据到达且数据丢失时,手机仍处于睡眠状态。这对Android来说是正常的吗?我每天看几次睡2个小时,睡觉时睡7个小时。
GCM是否提供了一种解决方案,可在消息到达时唤醒服务/电话。
我需要在服务器发送消息后的几秒钟内显示消息。
这只能通过让CPU整天保持运行来实现吗?数据到达时,GSM调制解调器是否没有中断?
答案 0 :(得分:4)
据我所知,如果你有一个优秀的套接字连接而不是移动数据到服务器,那么套接字连接在睡眠模式下保持不变,而传入的数据包会唤醒手机的睡眠状态模式(简要地)传递数据。
同样是不属于WiFi(并且可能不适用于硬连线以太网)。您需要保留WakeLock
和WifiLock
。
GCM是否提供了一种解决方案,可在消息到达时唤醒服务/电话。
是的,但是......
我需要在服务器发送消息后的几秒钟内显示消息。
首先,GCM没有服务级别保证。我不知道有任何解决方案,包括你可能会自己推出的任何解决方案(例如,MQTT)。
其次,您不知道设备是否能够接收任何此类消息(GCM或其他),因为设备可能在飞行模式下关闭等。