Day27-Java回调

回调的简单demo

简述

A类让"有能力"的B类去完成某些事情, A类只负责命令, B类负责具体实施.

实现

  1. 需要返回值的类创建接口
public class A{
    //1. 创建接口
    public interface Callback{
        boolean doSomething();
    }

    //2. 创建接口实例
    private Callback mCallback;

    //3. 给接口实例赋值的方法
    public void setCallback(Callback callback){
        this.mCallback = callback;
    }

    //4. 正常使用接口的回调值的地方
    public void execute(){
        Log.i(tag, mCallback.doSomething()+"");
    }
}
  1. 返回数值的类.
    创建需要值的类, 并实现接口, 重写接口方法.
public class B extends AppCompatActivity implements A.Callback {
    //1. 创建A的实例
    private A mA;
    //2. 实现A里的接口

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        A mA = new A();
        //3. B发起回调, 通过A的实例
        mA.setCallback(this);
    }

    //4. 实现接口 & 重写方法
    @Override
    public boolean doSomething() {
        return false;
    }
}

参考
对Android中“回调”的理解

推荐阅读更多精彩内容