网络线程在服务中睡着了

时间:2012-09-24 17:14:28

标签: android network-programming android-service android-networking

我致力于不断将从设备获取的一些数据发送到服务器API的应用程序。我有一个服务一直在后台工作并收集数据,然后在这个服务中的网络线程负责建立与服务器的连接和发送数据。

我遇到的问题是虽然我在服务启动时获得了Wake和WiFi锁定,但是当某个设备在3g网络上并且连接不良时,似乎套接字写入方法只是挂起:我在每个输出后的日志中看到这个操作

网络线程非常简单,可以描述为

while(true) {
     if(!connectedToServer) {
         connectToServer();
     }
     acquireData();
     sendData();
}

sendData非常简单 - 它将数据写入套接字输出流。从我在日志中看到的情况来看,似乎OutputStream.write()在连接不良时无限期地调用块。

有没有人遇到过类似的问题?

谢谢,

0 个答案:

没有答案