最近对Android中的回调产生了一些疑问,看了不少博文才算是明白了一点,接下来分享一下我的收获。
写在正文之前,大神可以跳过: 1.接口不可以实例化,但可以创建一个接口对象。*注1: 2.你可能见过这样的语法:
Button bt_add = (Button) findViewById(R.id.bt_add);
bt_add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
复制代码
我们都知道OnClickListener()是一个接口,但是上文中 new OnClickListener()并非是实例化接口,而是表示一个匿名内部类实现该接口。
*注1:“创建一个接口对象”这样的描述并不合适,在阅读《thinking in java》的过程中,我找到了一个更合适的词——引用(reference)。当然如果你有更好的看法可以在评论中指出,我们一起来讨论。
####1.回调函数定义 回调函数就是一个通过函数指针