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