我有一个 AsyncTask
private class LoadData extends AsyncTask<String, Void, String> {
private String WEBURL;
LoadData(String url){
this.WEBURL=url;
}
protected String doInBackground(String... params) {
System.out.println("Downloading");
URL url = new URL(WEBURL);
URLConnection conn = url.openConnection();
conn.connect();
byte buffer[] = new byte[1024];
InputStream in = new BufferedInputStream(url.openStream());
String contents="";
while((count = in.read(buffer))!=-1){
total+=count;
contents += new String(buffer, 0, count);
}
System.out.println("Downloaded");
in.close;
}
}
如果我尝试LoadData
通过调用来制作两个
new LoadData("http://www.google.com").execute();
new LoadData("http://www.stackoverflow.com").execute();
我希望输出:
正在下载 正在下载 已下载 已下载
但相反我得到
下载 下载 下载 下载
这意味着AsyncTask
s 没有同时执行。为什么是这样?我认为线程的重点是这不会发生?+ 有没有办法让它们同时运行而无需更改太多代码?