Android中的回调Callback

来源:互联网 发布:windows ce系统刷机 编辑:程序博客网 时间:2024/06/07 01:53

回调就是外部设置一个方法给一个对象, 这个对象可以执行外部设置的方法, 通常这个方法是定义在接口中的抽象方法, 外部设置的时候直接设置这个接口对象即可.


例如给安卓添加按钮点击事件, 我们创建了OnClickListener接口 实现了其中的onClick方法, 在合适的时机(按钮被点击的时候) , 就会执行我们实现的onClick()方法. 这个方法就被回调了 . 


1. 如何定义一个回调


a. 定义接口 : 在类中定义一个Interface, 并在接口中定义一个抽象方法;

b. 接口对象 : 在类中定义一个该接口的成员变量;

c. 设置对象 : 在类中定义一个公共的方法, 可以设置这个接口的对象, 调用该方法给接口对象成员变量赋值;

d. 调用方法 : 在合适的位置调用接口对象中的方法;


2. 代码实例

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. public class Employee {  
  2.     /* 
  3.      * 定义回调接口的成员变量 
  4.      */  
  5.     private Callback mCallback;  
  6.     /* 
  7.      * 声明回调接口 
  8.      */  
  9.     public interface Callback{  
  10.         public abstract void work();  
  11.     }  
  12.     /* 
  13.      * 设置回调接口对象成员变量 
  14.      */  
  15.     public void setCallback(Callback callback) {  
  16.         this.mCallback = callback;  
  17.     }  
  18.     /* 
  19.      * 调用回调接口对象中的方法 
  20.      */  
  21.     public void doWork() {  
  22.         mCallback.work();  
  23.     }  
  24. }  

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. public class Boss {  
  2.     private Employee employee;  
  3.     /* 
  4.      * 为Employee设置回调函数, 在这里定义具体的回调方法 
  5.      */  
  6.     public void setCallback() {  
  7.         employee.setCallback(new Employee.Callback() {  
  8.             @Override  
  9.             public void work() {  
  10.                 System.out.println("work");  
  11.             }  
  12.         });  
  13.     }  
  14. }  

0 0
原创粉丝点击