最近,在学习安卓开发的过程中,经常性的会看到回调这个词,乍一看。真的是搞不懂啊。然后就是各种的百度。上个月百度了好多篇相关的文档,但还是没有搞懂。但是前几天在学习BLE的过程中,又遇到了回调这个令我头疼的问题,所以决定,把他弄懂。于是,经过一晚上的不屑的努力理解。加上实践。总算是弄明白了。其实。回调很简单。在这里。为了便于理解,我就简单的说说。
对于JAVA开发来说,回调其实就是对象A调用对象B中的方法b,而对象B又反过来调用对象A中的方法a。相对于对象A来说,方法a就是回调函数。其实,在我们写安卓代码的时候。有好多地方就用到了回调。比方说按钮。按钮的监听事件,系统是不能够自动调用的。而是通过,按下按钮后,系统才会调用按钮的监听事件。这就是所谓的回调。回调机制能够很有效的管理代码的执行。他是用来告诉系统。该在什么时候执行回调函数。下面就以一个具体的实例讲解一下吧,这也是看了别人的博客才GET到的.
//定义一个接口
interface ICallback
{
void startCallBack()
}
public class A{
public static void main(String [ ] args){
B b = new B();
b.setCallback(new ICallback(){
public void startCallBack(){
System.out.println(I am callback!);
}
});
b.doSth()
}
}
public class B{
private ICallback callBack;
public void setCallBack( ICallBack callBack) {
this,callBack = callBack;
}
public void doSth() {
callBack.startCallBack();
}
显而易见,最后的输出结果是"I am callback!",在这里,setCallBack就是回调函数,现在明白了吧。