本文通过介绍Android事件监听机制来了解下Java的回调机制,即当你点击一个button的时候发生了什么,点击之后是如何调到自己写的onClick函数的。
写过Android小程序的同学肯定都写过如下的代码:
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
...
}
});
我们都知道这是在给一个Button注册监听事件,当点击这个button的时候会调到里面写的onClick函数。但是,这是怎么发生的呢?onClick函数是怎么被调用的?
其实背后运行的是JAVA的回调函数机制。也就是说onClick函数是一个回调函数,当你点击button的时候,系统监听到你的点击然后回调了这个函数。
我们先简单介绍一下JAVA的回调机制。
JAVA回调机制
回调机制
上图形象的展示了java回调的原理思想:
类A的a()方法调用类B的b()方法
类B的b()方法执行完毕主动调用类A的callback()方法
onClick函数其实就跟这里的callback() 一样,就是回调函数。回调机制文末有链接可详细了解,下面介绍一下是如何实现onClick函数的回调的。
onClick函数的调用实现