实际上我想要做的是在具有不同值的循环内运行asynctask。因此,一旦当前运行的asynctask结束 - 它将再次使用另一个值启动asynctask,它将继续直到循环结束。
这里,第一个asynctask需要在被调用时立即启动,而下一个asynctask在前一个asynctask完成之前不会启动。
代码如下:
Myasync mAsync = new Myasync();
for(int i=0; i<5 ; i++)
{
mAsync.execute(i);
}
怎么做? : - )
答案 0 :(得分:2)
我在你的doInBackgroundMethod中建议这样的东西:
protected ArrayList<String> doInBackground(String... urls) {
ArrayList<String> result = new ArrayList<>();
for(int i = 0; i< urls.length; i++){
try {
URL url = new URL(urls[i]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line).append("\n");
}
bufferedReader.close();
result.add(stringBuilder.toString());
} finally {
urlConnection.disconnect();
}
} catch (Exception e) {
Log.e("ERROR", e.getMessage(), e);
result.add(null);
}
}
return result;
}
注意String... urls
参数