如何在同一列表上打印两个异步任务的结果?

时间:2016-09-13 08:06:58

标签: android json google-maps android-asynctask

目前我正在开发一款列出您附近酒店的应用。我使用谷歌地方API网络服务,它工作正常。但我想打印从当前位置到每个地方位置的距离和持续时间。

为了列出酒店,我使用了一个asynctask然后解析JSON并将结果打印成一个列表,就像UDACITY的阳光应用程序一样。

但我想打印每家酒店旁边的距离和持续时间。但是对于距离,必须使用另一个api。你能帮我解决一下这个问题吗?

也就是说,我实际上需要一个函数来计算创建列表的最终字符串时的距离和持续时间,以便可以附加每个酒店名称。

1 个答案:

答案 0 :(得分:0)

在你的情况下,你必须调用api达n + 1次 所以在你的代码的doInBackground方法中处理数据 示例 -

private class PrepareDataAsyncTask extends AsyncTask<Void, Integer, Void> {

    @Override
    protected Void doInBackground(Void... params) {

        try {
            // call api here and get response here
            response = apiresult();
            JSONArray jsonArray = new JSONArray(result);
            for(int i=0;i<jsonArray.length();i++){
                // Call api and add distance and append result here for listing
            }
        } catch (Exception exception) {

        }
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {

        super.onPostExecute(result);
        // Set adapter here
    }

}