【发布时间】:2013-03-01 03:11:12
【问题描述】:
下面是我的代码:
private HttpURLConnection connection;
private InputStream is;
public void upload() {
try {
URL url = new URL(URLPath);
connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(30000);
connection.setReadTimeout(30000);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.connect();
is = connection.getInputStream();
} catch (Exception e) {
e.printStackTrace();
}
}
public void stopupload() {
connection = null;
is = null;
}
当我上传文件时,is = connection.getInputStream(); 行会花费大量时间来获得回复。所以我想实现一个停止功能为stopupload()。但是如果我在代码在is = connection.getInputStream(); 行处理时调用stopupload(),它仍然需要等待它的回复。
我想在实现stopupload() 时立即停止等待。我该怎么做?
【问题讨论】:
-
Thread.interrupt() (编辑:实际上,这可能不起作用,因为此 API 不可中断)
-
有没有不用线程的方法?
-
connection = null; is = null;是否真的停止了 AsyncTask 的执行?我之所以问是因为connection = null;对我不起作用,而且我怀疑is = null;是否会起作用,因为is 仅在getInputStream 的末尾分配。最后,你真的得到了你想要的吗?
标签: java android httpurlconnection