在一个活动中,如果我想依次按照以下示例进行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
答案 0 :(得分:1)
在初始任务的onPostExecute
回调中,请在下一个任务上调用execute
。这将把它们链接在一起而不需要明确地监视状态。
答案 1 :(得分:0)
默认情况下,serial executor会运行AsyncTasks。这意味着调用DO一次发生一次(默认情况下)。
顺便说一句,你的while循环不正确 - 它永远不会进入循环,因为任务没有在你启动后立即完成。