应用进入后台时出现SocketTimeoutException异常

7

我已经设置了一个闹钟,当应用程序进入后台时会正常工作,但在服务中,我有一个 API,每隔 5 分钟调用一次以将位置发送到服务器,在应用程序进入后台后,服务仍然继续工作,但由于网络原因,我的 API 没有被调用,并且出现了 socckettimeOutException,尽管网络可用。


1
你解决了吗?我也遇到了同样的问题。 - George
我也遇到了这个问题。 - Radesh
我也遇到了这个问题。有关于如何解决它的消息吗? - matdev
2个回答

0

SocketTimeoutException 是在套接字读取或接受超时时发生的。例如:从套接字输入流中读取字节。网络可能可用,但您没有在套接字上接收数据,因此在经过一定时间而没有接收到任何数据时,会抛出此异常。

您可以使用 socket.setSoTimeout(0) 设置套接字超时值为无限制。


1
我认为你没有清楚地理解我的问题。 让我简要解释一下。当我的应用程序进入后台时,只有在此时网络不可用,当我回来并再次打开我的应用程序时,它可以正常工作,不会抛出socketTimeOutException。基本上,我正在做的是,每分钟获取一次经纬度,并每2分钟发送到服务器。我已经使用了alarmReceiver,并且它可以正常工作,服务不会被杀死。希望你现在明白了。 - Nitesh Rathod

0
我们可以通过定义套接字超时(增加超时时间)来处理它,然后使用try catch块来处理它。
    serverSocket.setSoTimeout(10000); //set the socket timeout in milliseconds

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接