【问题标题】:Android infinite URL loadAndroid 无限 URL 加载
【发布时间】:2011-10-25 22:26:18
【问题描述】:

我正在构建一个应用程序,它在初始屏幕中通过在线 URL 从文件加载数据。此应用目前正在运行、已发布并获得好评:)

然而,我注意到在某些设备(即 HTC Desire)上,当我实例化一个 URL 时,可以这样说:

url = new URL("https://www.blah.com/blah.txt");

URL 将挂在那里,并且启动画面将无限加载。我尝试将它放入它自己的线程并在发生这种情况时抛出超时,但似乎它甚至锁定了它,因为超时永远不会从父线程的等待函数中捕获。

现在,正如我所说,这似乎只适用于 HTC Desire,因为大多数设备都在顺利使用我的应用程序。并且它不会发生在每个带有应用程序的 HTC Desire 上。有问题的设备似乎偶尔出现。有时应用程序会正常运行,有时会无限加载。当它发生时,它会发生在 WiFi 和 3G 上。如果用户在应用程序无限挂起时将其终止,然后重新打开,它会解决问题并正常加载。

我在这里没有想法......有人有吗?我唯一能想到的就是尝试不同的构造函数,也许像:

url = new URL("https", "www.blah.com", 443, "/blah.txt");

但我不太精通网络,并且无法确定要使用的其他端口。我使用的网站是“https”网站。

提前感谢您的帮助。

【问题讨论】:

  • 它们是否通过某种代理运行?你的样本量是多少?您在 1 部或 20 部 HTC Desire 手机上看到过这种情况吗?

标签: java android url timeout


【解决方案1】:

您可以在URLConnection 对象上使用setConnectTimeout() 设置连接超时。这将允许您捕获 SocketTimeoutException 并重试或执行其他操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 2014-04-13
    • 2016-12-14
    相关资源
    最近更新 更多