我正在使用以下类(AsyncTask)从 8 个不同的 URL 中检索信息。我想将检索到的数据存储到一个由 8 个元素组成的数组中(一个用于我从中获取数据的每个 URL)。
private class getDataClass extends AsyncTask<String, Void, String>{
protected String doInBackground(String...urls){
String response = "";
for(String url : urls){
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
try{
HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();
BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
String s = "";
while((s = buffer.readLine()) != null){
response += s;
}
}catch(Exception e){
e.printStackTrace();
}
}
return response;
}
protected void onPostExecute(String result){
Resources.descriptionArray[descriptionArray_Counter] = Html.fromHtml(result).toString();
descriptionArray_Counter++;
}
并这样称呼它:
getDataClass getData = new getDataClass();
getData.execute(description_links);
我显然遇到的问题是所有信息都存储在数组 [0] 中,因为我的 AsyncTask 类返回单个“响应”字符串。
我想知道什么,因为我没有找到很多这样的例子,什么是更优雅的方式来做到这一点,以及其他更有经验的编码人员将如何解决这个问题。
非常感谢您花时间回答。