执行一个功能时,所有异步HTTP请求完成 [英] Execute a function when all Async Http Requests are finished

查看:132
本文介绍了执行一个功能时,所有异步HTTP请求完成的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

让我们说我们有两个HTTP异步调用,任务1和Task 2,我希望在同一时间执行他们两个。而一旦双方完成后,我想触发功能。


Let's say we have two HTTP Async Calls, Task 1 and Task 2. And I want to execute both of them in the same time. and once both are finished, I want to trigger a function.

由于我们不知道哪个任务将首先完成呢,我们怎么能知道,任务完成和触发功能?

Since we don't know which task will be finished first, how can we know that the tasks are finished and trigger the function?

推荐答案

步骤1:创建界面TaskComplete,

Step-1 : Create interface TaskComplete ,

public interface TaskComplete {
    public void TaskDone(String asyncClassName);
}

步骤2:类创建它的对象,你在呼唤异步任务

Step-2 : Create object of it in class where you are calling async task.

        TaskComplete taskComplete = new TaskComplete() {

        boolean firstDone = false;
        boolean secondDone = false;

        @Override
        public void TaskDone(String asyncClassName) {
            // TODO Auto-generated method stub

            if(asyncClassName.equals("FIRST_ASYNC")) {
                firstDone = true;
            } else if(asyncClassName.equals("SECOND_ASYNC")) {
                secondDone = true;
            }

            if(firstDone == true && secondDone == true) {
                // Both async completed - do your work
            }
        }
    };

步骤3:从异步类的各自onPostExecute方法调用这些

Step-3 : Call these from respective onPostExecute method of async class.

    taskComplete.TaskDone("FIRST_ASYNC");
    taskComplete.TaskDone("SECOND_ASYNC");

这篇关于执行一个功能时,所有异步HTTP请求完成的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆