0

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

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

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

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

sendData 非常简单——它将数据写入套接字输出流。从我在日志中看到的内容看来,OutputStream.write() 调用只是在连接不良时无限期地阻塞。

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

谢谢,

4

0 回答 0