我在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天以上......任何指针都很受欢迎..
答案 0 :(得分:0)
我认为this链接会对您有所帮助。拿一个他的工作示例并进行修改。我的猜测是你可能已经没有用于下载的主机的池化套接字了,我会尝试添加一个conn.disconnect()调用。从Tim Bray那个例子开始会更好。
答案 1 :(得分:0)
实际上我发现问题不在于连接池,而是启用和禁用wifi。 只有在我禁用wifi并启用它后才会出现问题。 wifi连接恢复,但它无法从我的网址获取流。
我不知道wifi接口是否需要太长时间才能激活(但它同时具有连接功能,ping工作)或者禁用并启用它会出现问题。 我还是卡住了!