之前我对回调机制很不理解,回调机制是什么?它有什么用?怎样使用回调机制?看了这篇文章,肯定会明白的。
1. 回调机制是什么?它有什么用?
回调机制大体意思就是:借助一个接口,A发送一条消息给B,就去做别的事情了;然后B忙完手上的活,给A回复了一条消息。
2. 回调机制的具体实现流程
首先,要先定义一个接口。
public interface CallBackInterface {
public void result(String result);
}
写一个类,也就是上面说的A,让他去实现之前定义的接口,并实现它。
public class FirstClass implements CallBackInterface
这是返回来的结果,也就是回复的那条消息,我们顺便把它打印出来备用。
@Override
public void result(String result) {
System.out.print("CallBackMessage:"+ result + ";");
}
接着,再写一个B类准备着与A进行配合。
public class SecondClass
再回到第一个类中,也就是A类,实现它的构造方法,是为了把第二个类传递进来。
public FirstClass(SecondClass secondClass){
this.secondClass = secondClass;
}
在B类里面写一个B类要给A类回消息的方法,参数分别是接口和A类发送的那条消息。
public void callMessage(CallBackInterface callBackInterface,String message)
这时候就要在A类里面创建一个方法,在方法里面调用B类的callMessage()方法。
public void sendMessage(final String message){
new Thread(new Runnable() {
@Override
public void run() {
secondClass.callMessage(FirstClass.this,message);
System.out.print("First class send a message;");
}
}).start();
}
完善B类的方法,这时候B类就能收到A类发过来的消息,并在B类那个方法里调用A类的方法,给A类回复了一条消息。
String CallBackMessage = "CallBackMessage";
callBackInterface.result(CallBackMessage);
这样就可以了,写个测试类测试一下吧。
public static void main(String[] args){
SecondClass secondClass = new SecondClass();
FirstClass firstClass = new FirstClass(secondClass);
firstClass.sendMessage("messageBase");
}
3. GitHub Demo地址
https://github.com/suyichen/Blog-CallBack