首页 > 解决方案 > 回调完成后如何执行原始方法?

问题描述

我开发代码时出现了一些问题。例如)

一个.java


public OnResultCallbackListener(){

part C

}


protected void onCreate(){

(skipped)
      button.setOnClickListener(){
            method a(arg0, arg1, arg2, ...., OnResultCallbackListener);
            --------------------------------
            part B
            --------------------------------
      }
}

我想按这个顺序执行。当我单击按钮时,方法 a 执行。并且方法 A 将调用回调(OnResultCallbackListener),当 OnResultCallbackListener 完成时(部分 C),执行方法 a 下面的代码(部分 B)

因此,顺序是方法 A - OnResultCallbackListener(C 部分)- B 部分。但我的代码首先执行 B 部分。OnResultCallbackListener 需要服务器连接,所以无法修改。

在这种情况下,我怎样才能以我想要的方式执行我的代码?

标签: javaandroidapiasynchronoussynchronous

解决方案


使用复合侦听器包装回调侦听器。

public OnResultCallbackListener(){
    // part C
}
public CompoundCallbackListener(){
    OnResultCallbackListener();
    // part B
}

protected void onCreate() {
    // (skipped)
    button.setOnClickListener(){
        method a(arg0, arg1, arg2, ...., CompoundCallbackListener);
    }
}

推荐阅读