回調(diào)的簡單demo
簡述
A類讓"有能力"的B類去完成某些事情, A類只負(fù)責(zé)命令, B類負(fù)責(zé)具體實(shí)施.
實(shí)現(xiàn)
- 需要返回值的類創(chuàng)建接口
public class A{
//1. 創(chuàng)建接口
public interface Callback{
boolean doSomething();
}
//2. 創(chuàng)建接口實(shí)例
private Callback mCallback;
//3. 給接口實(shí)例賦值的方法
public void setCallback(Callback callback){
this.mCallback = callback;
}
//4. 正常使用接口的回調(diào)值的地方
public void execute(){
Log.i(tag, mCallback.doSomething()+"");
}
}
- 返回?cái)?shù)值的類.
創(chuàng)建需要值的類, 并實(shí)現(xiàn)接口, 重寫接口方法.
public class B extends AppCompatActivity implements A.Callback {
//1. 創(chuàng)建A的實(shí)例
private A mA;
//2. 實(shí)現(xiàn)A里的接口
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
A mA = new A();
//3. B發(fā)起回調(diào), 通過A的實(shí)例
mA.setCallback(this);
}
//4. 實(shí)現(xiàn)接口 & 重寫方法
@Override
public boolean doSomething() {
return false;
}
}