Android的框架中有非常多的地方使用了回调的模式,例如Activity的生命周期,按钮的点击事件等。
下面是回调的基本模型:
public class A {
private CallBack callback;
//注册一个事件
public void register(CallBack callback){
this.callback = callback;
}
// 需要调用的时候回调
public void call(){
callback.oncall();
}
}
public interface CallBack {
public void oncall();
}
public static void main(String[] args) {
A a = new A();
a.register(new CallBack() {
@Override
public void oncall() {
System.out.println("回调函数被调用");
}
});
a.call();
}
如果把类A改成Button,CallBack改成OnClickListener,register函数改成setOnclickListener,和android里面设置点击事件是一样的。callback.oncall();只是在点击事件激发后调用而已。