我正在为Android开发一个应用程序,它需要通过TCP套接字连接发送消息。我已经根据connect(SocketAddress endpoint, int timeout)方法设置了一个超时值。现在,connect()方法会一直阻塞,直到超时到期,并且只有在服务器脱机时才会抛出SocketException。在所有其他情况下,如网络禁用、网络不可达等,超时值将被忽略,该方法直接抛出SocketException (ENETUNREACH)。即使在这种情况下,如何确保超时也能正常工作?
我是Android的新手,我试图找出处理用户没有网络连接的最佳方法。我将Retrofit2与OkHttp结合使用,并尝试了多种解决方案。pass the original response on }因此,基本上我一直在重新尝试一个请求,直到用户有了网络连接(这是我的基本想法,我将实现一个检查,以区分用户没有网络时和问题来自服务器时的情况),但我知道这是没有效率的。第二种方法:
我使用