Android中的连接超时

时间:2010-12-14 01:24:37

标签: android

使用Android应用程序进行HTTP调用有多种方法。如果有人想从http服务器带来图像,他/她可以使用一种方法来获取图像。另一方面,如果一个人想要为http服务器响应读取JSON或XML,他可以使用另一种方式来做到这一点。以上两个场景只是其他场景可能出现的示例。我的问题是,有没有任何标准的方法可以检查HttpConnection Timeout。在特定情况下,您可以使用WIFI或GPRS连接,但由于其较长的周转时间,我的应用程序的用户体验受到了阻碍。我该如何检查这个问题。

谢谢

下面是代码示例

public boolean readAndSaveFileFromWeb(String url) {
    byte[] fileRead = null;
    FileOutputStream fos;
    try {
        InputStream is = (InputStream) this.fetch(url);
        if(is!=null){
            fileRead = readBytes(is);
        }else{
            return false;
        }
    } catch (MalformedURLException e) {
        Log.v(TAG, "readAndSaveFileFromWeb Exception: Malformed URL "
                + e.getMessage());
        return false;
    } catch (IOException e) {
        Log.v(TAG, " readAndSaveFileFromWeb Exception:   IOException"
                + e.getMessage());
        return false;
    } catch (Exception e) {
        Log.v(TAG, " readAndSaveFileFromWeb Exception: " + e.getClass());
        return false;
    }
}


public Object fetch(String address) throws MalformedURLException,
        IOException {
    URL url = new URL(address);
    Object content = url.getContent();

    return content;
}

现在上面的代码从地址url获取内容/响应。在特定情况下,WIFI或GPRS连接可用,但如果连接速度慢,则获取数据所需的时间更长。在此延迟期间..虽然我在不同的线程而不是UI线程中执行网络密集型任务,但应用程序看起来仍然被绞死。这有点妨碍了用户体验。

1 个答案:

答案 0 :(得分:0)

在执行HTTP请求之前检查网络连接或捕获超时异常