您的位置:首页 > 移动开发 > Android开发

java回调机制以及android中的回调方法

2016-03-07 00:12 399 查看
今天搞清楚了java的回调机制以及android中的回调方法的具体含义,只是感慨自己还是太小白了,加油!

首先引用维基百科上的定义: 在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。

定义:java中的回调是通过一个接口实现的

直接上示例:程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。其中a程序中的call()方法就是回调方法。

caller类也就是A程序员写的a程序

public class caller {

MyCallInterface callInterface = null;

public void setCallFunu(MyCallInterface callInterface){
this.callInterface = callInterface;
}
public void call(){
callInterface.printName();
}
}


接口的定义

public interface MyCallInterface {
public void printName();
}


其中接口中定义的方法printName()就是我们在b程序中想要实现的方法也是android中的自己写的onclick方法(此处以android中的onClickListener方法为例子,后面会详细提到)。

然后是B程序员写的b程序

public class Client implements MyCallInterface{

public void printName(){
System.out.println("回调成功");
}

}


测试类Test

public class Test {

public static void main(String args[]){

caller caller = new caller();
caller.setCallFunu(new Client());
caller.call();
}

}


结果:

回调成功

分析与总结

因为java中没有函数参数的概念,所以可以通过接口来实现回调。

记住一句话:B程序员通过接口使用a程序调用自己b程序中的方法,叫做回调。

————————————————————————————————————以下是Android中的分析

onClickListener方法为例子

Button.setOnClickListener(new OnClickListener(){
public void OnClick(){
System.out.println("我写的点击效果");
}
});


Button继承自View类就是A程序员写的a程序类,setOnClickListener方法就是a程序中的 setCallFunu()方法,就是设置通过某个接口。后面的匿名内部类OnClickListener就是client类了,只不过换了个形式。

阅读了源码之后发现确实是这样的!

最后说一下android回调的作用:android开发者也就是程序员A定义好了这些接口和方法,使用者我们也就是程序员B自己实现了自己的OnClick方法,我们想调用自己的方法就要通过这样的回调机制实现。

学到了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: