【问题标题】:How to get data from multiple URL's and store it into a simple array?如何从多个 URL 获取数据并将其存储到一个简单的数组中?
【发布时间】: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


    【解决方案1】:
     as my AsyncTask class returns a single "response" string.
    

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

    你应该检查AsyncTask's Generic type

    【讨论】:

    • 感谢您的回答。关于如何实施这一点的任何帮助?或者一个链接?
    猜你喜欢
    • 2019-06-21
    • 2017-05-09
    • 1970-01-01
    • 2019-12-03
    • 2017-04-21
    • 1970-01-01
    • 2022-09-29
    • 1970-01-01
    • 2018-05-01
    相关资源
    最近更新 更多