2 qq446313782 qq446313782 于 2016.03.09 13:12 提问

Android待机情况下无法发送心跳包 5C

我要在App端实现与服务器间的长连接,使用的是谷歌的Netty,在待机后2分钟左右,Cpu进去深度睡眠,心跳包的收发都不行,这个要怎么解决呀

4个回答

lainzy
lainzy   2016.03.09 13:20

让程序定时唤醒,这个问题还可以参考下即时通信软件的做法。

qq446313782
qq446313782 你是说用AlarmManager?
接近 2 年之前 回复
wen_wxpk
wen_wxpk   2016.03.09 14:30

发送心跳包是写在service里面的吗

wen_wxpk
wen_wxpk 回复qq446313782: 是的,service生命力比较强
接近 2 年之前 回复
qq446313782
qq446313782 不是 放service里面就不会这样了嘛
接近 2 年之前 回复
qq_32969313
qq_32969313   2016.03.09 16:19

你的安卓系统是什么版本,6.0有墓碑机制,后台会被强制休眠,miui也有神隐模式,限制后台联网,最好让手机保持屏幕常亮,在需要一直发送心跳包时。现在各种定制系统都在限制后台软件联网等,优化耗电等。

zuishikonghuan
zuishikonghuan   2016.03.09 22:48

非要的话,可以用powermanager禁用CPU休眠,不过会造成电量很快耗尽。另外需要添加“阻止休眠”权限,这些原因可能会使用户体验下降

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!