Android开发——回调(Callback)

来源:互联网 发布:清华燃烧能源中心知乎 编辑:程序博客网 时间:2024/05/18 01:14
1. 回调函数的定义:
在A类中定义了一个方法,这个方法中用到了一个接口和该接口中的抽象方法,但是抽象方法没有具体的实现,需要B类去实现,B类实现该方法后,它本身不会去调用该方法,而是传递给A类,供A类去调用。
2. 类比:
你(B类)去书店买书,结果发现想买的书卖完了,这时候书店(A类)告诉你他们有来书通知业务(接口和接口中的抽象方法),于是你留下了自己的手机号让书店有书了给你来电(实现该抽象方法),书店等到有书了以后会根据你留下的电话和方法给你来电提醒你(B类实现的方法由A类来调用)。
2. 使用回调的情况:
  • 处理异步请求的返回值
  • 同一个事件有不同的处理方法
3. 回调的使用方法:
  • 定义接口(public interfact),预定义需要完成的函数
  • 定义A类,使用接口和该接口中的抽象方法,同时在初始化A时请求函数B作为callback的参数
  • 定义B类(implements interface),设定函数的具体动作,并将B当做参数传给A,使A在回调时可以找到函数的位置
4. 具体代码:
  • 定义接口
//定义回调接口public interface Callback{    void notice();}
  • 定义A类
public class A{private CallBack callBack;public A(CallBack callBack){this.callBack = callBack;}public void Operation(){if(callBack != null){callBack.notice();}}}
  • 定义B类
public class B implement CallBack{public static void main(String args[]) {         A a = new A(this);a.Operation();    } @Overridepublic void notice(){System.out.println("Now you get notice!");}}



0 0