以下是我的代码:
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()
时立即停止等待。我该如何做?
connection = null; is = null;
真的会停止 AsyncTask 的执行吗?我问这个问题是因为connection = null;
对我不起作用,而且我怀疑is = null;
也不会奏效,因为 is 只在 getInputStream 结束时被赋值。最终你是否真正获得了想要的结果? - doplumi