接口回调机制理解
来源:互联网 发布:js object 键 值 编辑:程序博客网 时间:2024/06/06 13:23
定义
Java允许调用接口的方法,但前提是编译时接口的对象必须是一个具体的类,并且实现了接口。当我们调用接口时,接口的具体子类的具体方法会被调用,这就是回调。
public interface Interface {
void printClassName();
}
public class A implements Interface {
B b = new B();b.setListener(this);@Overridepublic void printClassName() { System.out.println("This is class A!请告诉我时间");}
}
public class B {
Interface mInterface;public void setListener(Interface interface){ this.mInterface = interface;}// B 在setListener里面接受到Interface后的某个时刻,执行showPrintpublic void showPrint(){ if(mInterface != null){ mInterface.printClassName(); }}
}
接口回调应用场景:
A:A
B:中间人B
C:C
A new 一个中间人B,并告诉B:如果C想吃饭了就立刻告诉A;
B再注册到C中,时刻监听C。此时C持有B,并可以操作A的方法;
当C觉得饿,想吃饭了,B就告诉A:C想吃饭了;
A根据B的回报,点了外卖。
A:Activity
B:OnClickListener
C:Button
C 中预留有B的专属位置,但为null,即mOnClickListener=null;
public OnClickListener mOnClickListener
在A中new 一个对象B,并嘱咐B一旦C有点击事件,就告诉A;
把B注册到C中,实现对C的监听,此时C中B的专属位置不为null;
Button.setOnClickListener(B)mOnClickListener=B
C中有点击触发,调用onClick(),也就是接口B中的onClick方法;
mOnClickListener.onClick(this)
B将监听情况告诉个A,A给出相应的动作、行为
OnClickListener() { @Override public void onClick(View v) { //A听到后,发生的动作行为 } }
让编译器知道,调用接口方法的时候,
去回调我们设置的OnClickListener子类的对应方法,即A中接口的实现类,
new View.OnClickListener() {
@Override
public void onClick(View v) {
// doSth 在这里
}
}
reference : http://www.cnblogs.com/Fndroid/p/5308713.html
如理解有偏差,欢迎指正!
阅读全文
0 0
- 接口回调机制理解
- 对于Android中接口回调机制的理解
- 接口回调机制
- 接口回调机制
- 接口回调机制
- JAVA接口回调机制
- Android接口回调机制
- Java接口回调机制
- Android 接口回调机制
- Java 接口回调机制
- Android接口回调机制
- 接口回调机制详解
- Java接口回调机制
- java接口回调机制
- Android 接口回调机制
- java接口回调机制
- java 接口回调机制
- java 接口回调机制
- Day01 Static 自定义工具类
- 【最小费用流】
- 顺序表应用2:多余元素删除之建表算法
- 1.asp.net中的错误机制
- SQL中delete,truncate和drop的区别
- 接口回调机制理解
- 贪婪方法——最小生成树
- 爹地的实验:实验一: 数据结构实验一线性表的基本操作实现及其应用
- java学习第三天
- HDU 4740 The Donkey of Gui Zhou 暴力
- 深度学习在计算机视觉方向的前沿应用
- 美剧在中国那些事
- Unity_设计模式_简介_01
- JSP学习之Java Web中的安全控制实例详解