回调机制

回调机制:把一个方法作为形参传递到另一个方法中就叫做回调。

安卓中的接口回调就是,先定义一个接口,我实现了一个接口里的方法doSomething,然后注册到你这里,然后我就去做别的事情去了,你在某个触发的时机回头来调用我doSomething的方法。

用生活中的例子解释:有一天我遇到一个很难的问题,问题是“1 + 1 = ?”,就打电话问你,你说你要去查查数学书才能告诉我答案,我对你说,我先做其他数学题,你知道了答案就打我电话告诉我,于是我挂了电话,继续办自己的事情,过了一个小时,你在数学书中查到了答案,于是你打电话告诉我答案是2。

在接口中定义finish()方法,然后将接口定义到你这个类中,在你类中去查询数学书,查询完结果后调用接口中的finish()方法告诉我你找到了答案。我类中实现finish()方法的具体内容,并执行。

在我们现实生活中,有如下这样场景:有一位老板很忙,他没有时间盯着员工干活,然后他告诉自己的雇员,干完当前这些事情后,告诉他干活的结果。

首先创建一个回调接口,让老板得告知干完活如何找到他的方式:留下老板办公室地址:

[java]  view plain copy
  1. package net.easyway.test;  
  2.   
  3. /** 
  4.  * 此接口为联系的方式,不论是电话号码还是联系地址,作为 
  5.  * 老板都必须要实现此接口 
  6.  * @author Administrator 
  7.  * 
  8.  */  
  9. public interface CallBackInterface {  
  10.   
  11.     public void execute();  
  12. }  

创建回调对象,就是老板本人,因为员工干完活后要给他打电话,因此老板必须实现回调接口,不然员工去哪里找老板?

[java]  view plain copy
  1. package net.easyway.test;  
  2.   
  3. /** 
  4.  * 老板是作为上层应用身份出现的,下层应用(员工)是不知道 
  5.  * 有哪些方法,因此他想被下层应用(员工)调用必须实现此接口 
  6.  * @author Administrator 
  7.  * 
  8.  */  
  9. public class Boss implements CallBackInterface {  
  10.       
  11.     @Override  
  12.     public void execute() {  
  13.         System.out.println("收到了!!" + System.currentTimeMillis());  
  14.           
  15.     }  
  16. }  

创建控制类,也就是员工对象,他必须持有老板的地址(回调接口),即使老板换了一茬又一茬,办公室不变,总能找到对应的老板。

[java]  view plain copy
  1. package net.easyway.test;  
  2.   
  3. /** 
  4.  * 员工类,必须要记住,这是一个底层类,底层是不了解上层服务的 
  5.  * @author Administrator 
  6.  * 
  7.  */  
  8. public class Employee {  
  9.   
  10.     private CallBackInterface callBack = null;  
  11.       
  12.     //告诉老板的联系方式,也就是注册  
  13.     public void setCallBack(CallBackInterface callBack){  
  14.         this.callBack = callBack;  
  15.     }  
  16.       
  17.     //工人干活  
  18.     public void doSome(){  
  19.         //1.开始干活了  
  20.         for(int i=0;i<10;i++){  
  21.             System.out.println("第【" + i + "】事情干完了!");  
  22.         }  
  23.           
  24.         //2.告诉老板干完了  
  25.         callBack.execute();  
  26.     }  
  27. }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值