callback回调是java里所有的,在Android中应用的地方非常多。
举一个简单的例子,你妈妈去做饭,你对你妈妈说饭做好了叫我吃饭(注册监听),然后妈妈做好饭叫你(调用方法),你听到后去吃饭(执行回调方法),这个过程其实就是一次回调事件。
public class Mother {
private StateChangeCallback mStateChangeCallback;
public interface StateChangeCallback {
void onStateChange();
}
public void registerStateChangeCallback(StateChangeCallback callback) {
mStateChangeCallback = callback;
mStateChangeCallback.onStateChange();
}
public void unregisterStateChangeCallback() {
if (mStateChangeCallback != null) {
mStateChangeCallback = null;
}
}
public void cook() { // 妈妈做完饭调用该方法
mStateChangeCallback.onStateChange();
}
}
public class Son {
registerStateChangeCallback(mStateChangeCallback); // 在合适的地方调用,Android中一般在onCreate
unregisterStateChangeCallback(); // 在合适的地方销毁,Android中一般在onDestroy
private StateChangeCallback mStateChangeCallback = new StateChangeCallback() {
@Override
public void onStateChange() {
System.out.println("儿子听到回调去吃饭");
}
}
}