在循环中多次使用UrlConnection Inputstream

时间:2012-02-10 02:44:32

标签: android

我在android上有一个应用程序,我想从手机的3g和wifi界面上的URL读取数据。我使用以下代码

read_data() {
  url = new URL("http://0xbadc0ffee.de/plHUGE.txt");
  UrlConnection conn = url.openConnection;
  reader = new BufferedInputStream(conn.getInputStream());
  //Then I write this into a FileOutput stream
  reader.close();
}

当我在3g和wifi界面上运行两次时,这很好用。但是当我把它放在循环中时,它无法获得Inputstream。最初我怀疑流是否正常关闭,但如果它不是如何在2个接口上的前两次工作?我已经坚持了2天以上......任何指针都很受欢迎..

2 个答案:

答案 0 :(得分:0)

我认为this链接会对您有所帮助。拿一个他的工作示例并进行修改。我的猜测是你可能已经没有用于下载的主机的池化套接字了,我会尝试添加一个conn.disconnect()调用。从Tim Bray那个例子开始会更好。

答案 1 :(得分:0)

实际上我发现问题不在于连接池,而是启用和禁用wifi。 只有在我禁用wifi并启用它后才会出现问题。 wifi连接恢复,但它无法从我的网址获取流。

我不知道wifi接口是否需要太长时间才能激活(但它同时具有连接功能,ping工作)或者禁用并启用它会出现问题。 我还是卡住了!