InputStream - 处理网络更改

时间:2013-01-04 10:36:32

标签: java android network-programming inputstream

我正在使用Java邮件API下载附件,每当网络状态发生微小变化时,我的应用程序就会卡住,我必须重新启动它,它甚至都没有崩溃。 这是代码段:

InputStream is = bodyPart.getInputStream();

String fileName = MimeUtility.decodeText(bodyPart.getFileName());

// Downloading the file
File f = new File(Constants.getPath() + fileName);
try {
    FileOutputStream fos;
    fos = new FileOutputStream(f);

    byte[] buf = new byte[8*1024];
    int bytesRead;

    while ((bytesRead = is.read(buf)) != -1) {
    fos.write(buf, 0, bytesRead);
    }
    fos.close();
}

处理此问题的最佳方法是什么?感谢。

1 个答案:

答案 0 :(得分:1)

您的申请被卡住了。解决方法是设置读取超时,如this question中所述。如果发生超时,将抛出SocketTimeoutException。