最近在调试TCP长连接这块,发现程序在后台运行后,然后锁屏,通过日志发现心跳数据没有发送,用数据线连接时却又可以发送心跳数据,估计android手机锁屏后cpu都停止工作了,用的Timer和TimerTask进行心跳定时发送,所以估Timer和TimerTask在锁屏后是不能用的,度娘找资料发现确实是的,锁屏后cpu不工作,要在锁屏后进行工作只能用AlarmService,由此总结三个问题:
1.手机锁屏待机后,Timer和TimerTask定时任务会失效,只有AlarmService可以用。
2.手机锁屏待机后,长连接会进入一种停止状态
3.用usb连接电脑看log,手机是不会进入待机状态,所以这时1和2的状态是不会发生的。
本文探讨了在Android设备上,锁屏后Timer和TimerTask心跳机制失效的问题,并提出使用AlarmService作为解决方案。
1363

被折叠的 条评论
为什么被折叠?



