如何在Android java中同步执行异步任务
我有一些任务使用sdk连接到MQTT服务器。 因此,任务结果是异步返回的如何在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(); } @
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()方法,该方法将等待布尔值设置完毕。