我致力于不断将从设备获取的一些数据发送到服务器API的应用程序。我有一个服务一直在后台工作并收集数据,然后在这个服务中的网络线程负责建立与服务器的连接和发送数据。
我遇到的问题是虽然我在服务启动时获得了Wake和WiFi锁定,但是当某个设备在3g网络上并且连接不良时,似乎套接字写入方法只是挂起:我在每个输出后的日志中看到这个操作
网络线程非常简单,可以描述为
while(true) {
if(!connectedToServer) {
connectToServer();
}
acquireData();
sendData();
}
sendData非常简单 - 它将数据写入套接字输出流。从我在日志中看到的情况来看,似乎OutputStream.write()在连接不良时无限期地调用块。
有没有人遇到过类似的问题?
谢谢,