java - Android 无限 URL 加载

标签 java android url timeout

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

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

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

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

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

我没有想法了...有人有吗?我唯一能想到的就是尝试不同的构造函数,比如:

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

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

预先感谢您的帮助。

最佳答案

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

关于java - Android 无限 URL 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7896633/

相关文章:

java - 难以从其他 Activity 获取数据

java - 加载 facebook 时在 WebView 中选择文本

android - 为什么Android在构建路径上找不到项目中的类?

iphone - 使用自定义 URL 方案从日历笔记启动我的应用程序

url - 为什么要使用 "Web 2.0"样式的URL?

java - 根据加速度移动物体

java - 为什么 BigInteger 除法时要减去小数位数,乘法时要加上小数位数?

java - 打印字符串中每个字母出现的索引

android - 在 android 项目中重新生成 R 类 (eclipse)

php - 如何在您的域外发布 html?