如何从多个URL获取数据并将其存储到一个简单的数组中?



我正在使用以下类(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 类返回一个"响应"字符串。

我想知道的是,因为我还没有找到很多这样的例子,那么什么是更优雅的方法,以及其他更有经验的编码人员将如何做到这一点。

非常感谢您抽出宝贵时间回答。

 as my AsyncTask class returns a single "response" string.

=> 这不是真的。因为AsyncTask也可以返回ArrayList,而不是一个字符串。

您应该检查 AsyncTask 的泛型类型

最新更新