如何一个接一个地使用异步任务调用REST API

时间:2014-12-28 03:51:58

标签: android android-asynctask android-async-http

在一个活动中,如果我想依次按照以下示例进行2-3个REST API调用。

task1.execute(); /*calls API1*/
while(task1.getStatus().equals(AsyncTask.Status.FINISHED)){
    task2.execute(); /*calls API2*/
    };

    while(task.getStatus().equals(AsyncTask.Status.FINISHED && task1.getStatus().equals(AsyncTask.Status.FINISHED)){
    task3.execute(); /*calls API3*/
        };

AsyncTask.Status即使在获得响应后也始终显示正在运行。 你能帮我解决这个问题。

http://stackoverflow.com/questions/12776293/how-to-get-asynctask-completed-status-from-non-activity-class/27666709#27666709

2 个答案:

答案 0 :(得分:1)

在初始任务的onPostExecute回调中,请在下一个任务上调用execute。这将把它们链接在一起而不需要明确地监视状态。

答案 1 :(得分:0)

默认情况下,serial executor会运行AsyncTasks。这意味着调用DO一次发生一次(默认情况下)。

顺便说一句,你的while循环不正确 - 它永远不会进入循环,因为任务没有在你启动后立即完成。