我正在使用以下类(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);
我明显得到的问题是所有信息都存储在array [0]中,因为我的AsyncTask类返回一个“响应”字符串。
我想知道的是,因为我没有找到很多这方面的例子,这将是一个更优雅的方式,以及其他更有经验的编码员如何做到这一点。
非常感谢您花时间回答。
答案 0 :(得分:1)
as my AsyncTask class returns a single "response" string.
=&GT;这不是真的。因为AsyncTask只能返回ArrayList而不是字符串。