【发布时间】:2012-04-06 12:19:25
【问题描述】:
我正在使用以下类 (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 类返回单个“响应”字符串。
我想知道什么,因为我没有找到很多这样的例子,什么是更优雅的方式来做到这一点,以及其他更有经验的编码人员将如何做。
非常感谢您花时间回答。
【问题讨论】:
标签: android json url android-asynctask http-get