Java 什么';移动设备上的连接有适当的超时吗?

Java 什么';移动设备上的连接有适当的超时吗?,java,android,http,timeout,connection,Java,Android,Http,Timeout,Connection,我想知道是否有人知道或有任何关于移动设备(尤其是Android)上互联网连接的最佳超时时间的信息 由于他们的互联网访问有限,且存在相当大的延迟,因此设置一个较小的超时(从默认值开始)可能很有趣,因为设备可能在特定时刻通过网络黑点 更新: 正如我在评论中提到的,我想到了这一点,因为对于用户来说,等待30秒超时然后最终失败是相当烦人的。坦率地说,我认为你问的问题没有真正的答案,或者至少是一个答案是“视情况而定”的问题 以下是一些您可能需要考虑的事项: 尽可能将使用internet连接的任务保留在后

我想知道是否有人知道或有任何关于移动设备(尤其是Android)上互联网连接的最佳超时时间的信息

由于他们的互联网访问有限,且存在相当大的延迟,因此设置一个较小的超时(从默认值开始)可能很有趣,因为设备可能在特定时刻通过网络黑点

更新:
正如我在评论中提到的,我想到了这一点,因为对于用户来说,等待30秒超时然后最终失败是相当烦人的。

坦率地说,我认为你问的问题没有真正的答案,或者至少是一个答案是“视情况而定”的问题

以下是一些您可能需要考虑的事项:

  • 尽可能将使用internet连接的任务保留在后台。这样,您可以有一个很长的超时,而不必让用户等待。希望这是显而易见的
  • 用户希望获取/发送数据的程度如何?这对他们越重要,他们准备等待的时间就越长。因此,一个上传商业数据的商业应用程序可能比一个只提交高分的游戏需要更长的超时时间
  • 当使用移动连接(如2G/3G)时,对性能的期望低于使用wi-fi时。你可能需要考虑到这一点
  • 由于是移动的,信号强度可能是一个问题。同样,这是你可能需要考虑的事情
  • 您可以随时让用户自己设置超时的长度

综上所述,假设您正在阻止用户执行任何其他操作,那么我将看到10-20秒范围内的某个超时。这个数字更多的是基于我作为用户的经验,而不是作为开发人员的经验

如果您正在访问网页,通常10-30秒的超时是常规做法,如果您正在访问json api,则较小的超时(例如5秒或10秒)是合适的,因为json响应中的数据大小通常非常小。JSON api的超时时间越短,用户等待的时间就越少

正如你所说的,用户等待30秒,然后让它最终失败,这可能是相当烦人的。对于移动设备来说,问题在于没有网络接入,因此越快失败越好,并为用户提供重试的选项

我在应用程序中所做的是监视网络状态并设置10秒超时,如果仍然失败,用户可以重试/刷新以加载数据,而不是等待30秒并使其失败


最后,正如Baqueta在上面的回答中所解释的那样,这完全取决于情况。

一个较小的超时时间?你是说超时时间更长?对我来说,说你的连接越差,我对超时的要求就越严格是没有意义的。这样用户就不会等待连接响应了。看到一个应用程序等待30秒,然后连接失败,真是令人沮丧。谢谢,回答得很好。主要的问题显然与fetch操作有关,因为其他操作可以很容易地进行批处理并在服务中完成,但当您搜索或加载详细信息时,这可能会有问题。我认为最好的解决方案可能是监控网络信号,让用户知道它可能需要比平时更长的时间或失败。但是,您需要添加对电话状态的权限,以便不是用户信任的最佳方式:/