Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android java中同步执行异步任务_Java_Android_Async Await - Fatal编程技术网

如何在Android java中同步执行异步任务

如何在Android java中同步执行异步任务,java,android,async-await,Java,Android,Async Await,我有一些任务使用sdk连接到MQTT服务器。 因此,任务结果是异步返回的 service.doConnect(paramVar1,new IResultListener<Boolean>() { @Override public void success(Boolean response) { doSuccessConnect(); } @

我有一些任务使用sdk连接到MQTT服务器。 因此,任务结果是异步返回的

        service.doConnect(paramVar1,new IResultListener<Boolean>() {
            @Override
            public void success(Boolean response) {
                doSuccessConnect();
            }

            @Override
            public void failed(int statusCode, Exception exception) {
                doFailConnect();
            }
        };

        service.doFunction1(paramVar2,new IResultListener<Boolean>() {
            @Override
            public void success(Boolean response) {
                doSuccessFunction1();
            }

            @Override
            public void failed(int statusCode, Exception exception) {
                doFailFunction1();
            }
         };


        service.doFunction2(paramVar3,new IResultListener<Boolean>() {
            @Override
            public void success(Boolean response) {
                doSuccessFunction2();
            }

            @Override
            public void failed(int statusCode, Exception exception) {
                doFailFunction2();
            }
         };
service.doConnect(paramVar1,新的IResultListener(){
@凌驾
public void成功(布尔响应){
doSuccessConnect();
}
@凌驾
public void失败(int statusCode,异常){
doFailConnect();
}
};
service.doFunction1(paramVar2,新的IResultListener(){
@凌驾
public void成功(布尔响应){
doSuccessFunction1();
}
@凌驾
public void失败(int statusCode,异常){
doFailFunction1();
}
};
service.doFunction2(paramVar3,新的IResultListener(){
@凌驾
public void成功(布尔响应){
doSuccessFunction2();
}
@凌驾
public void失败(int statusCode,异常){
doFailFunction2();
}
};
我想按顺序执行任务。service.doConnect※仅成功->service.doFunction1※仅成功->service.doFunction2 并且不想将service.doFunction1放在doSuccessConnect()中

有人能告诉我一种在Android java中实现这一点的方法吗。
谢谢!

您可以编写3个函数并从“success”方法调用下一个函数。@KaushikBurkule我不想将这些函数绑定在一起。如果SDK不提供Executor参数或不包含任何API来控制或序列化线程的执行,您需要自己完成。创建一个带有b的非匿名包装类调用回调时oolean bIsFinished=true。还添加一个blockUntilFinished()方法,该方法将等待布尔值设置完毕。