为什么我在设备的睡眠模式下获得SoketTimeOutException?

时间:2017-08-05 14:04:57

标签: android service alarmmanager android-webservice

我正在调用来自Service类的Web服务HTTPS连接,警报管理员每隔1分钟调用一次。当我开始服务时,它正常工作我收到来自Web服务的响应,直到设备进入睡眠模式。当设备&# 39; s屏幕下车,在下一个网络服务电话上我收到此错误 -

   com.turbomanage.httpclient.HttpRequestException: java.net.SocketTimeoutException: connect timed out

它将继续抛出此异常,直到我唤醒设备。当设备被唤醒时,webservice开始从服务器获得响应,然后我就不会得到异常。所以请任何人告诉我可能是什么问题。测试设备 Nexsus 5X

2 个答案:

答案 0 :(得分:2)

  

我从Service类调用Web服务HTTPS连接,警报管理器每隔1分钟调用一次

这不适用于Android 6.0+,除非您的应用是电池优化白名单。打盹模式将停止大部分警报,在您获得控制权的情况下,您可能无法访问Internet。

另外,请记住,每分钟唤醒设备以执行网络I / O都会耗尽电池,这就是Android 6.0首先引入Doze模式的原因。

答案 1 :(得分:0)

优化打ze和应用待机

https://developer.android.com/training/monitoring-device-state/doze-standby

忽略电池优化的代码

image (UIImage)