接口回调机制理解
2017-09-21 22:21
190 查看
定义
public interface Interface {
}
public class A implements Interface {
}
public class B {
}
接口回调应用场景:
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;
在A中new 一个对象B,并嘱咐B一旦C有点击事件,就告诉A;
把B注册到C中,实现对C的监听,此时C中B的专属位置不为null;
C中有点击触发,调用onClick(),也就是接口B中的onClick方法;
B将监听情况告诉个A,A给出相应的动作、行为
让编译器知道,调用接口方法的时候,
去回调我们设置的OnClickListener子类的对应方法,即A中接口的实现类,
new View.OnClickListener() {
@Override
public void onClick(View v) {
// doSth 在这里
}
}
reference : http://www.cnblogs.com/Fndroid/p/5308713.html
如理解有偏差,欢迎指正!
Java允许调用接口的方法,但前提是编译时接口的对象必须是一个具体的类,并且实现了接口。 当我们调用接口时,接口的具体子类的具体方法会被调用,这就是回调。
public interface Interface {
void printClassName();
}
public class A implements Interface {
B b = new B(); b.setListener(this); @Override public 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后的某个时刻,执行showPrint public 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
如理解有偏差,欢迎指正!
相关文章推荐
- 深入理解Android之接口回调机制
- 对于Android中接口回调机制的理解
- Android接口回调机制(有图有真相,如果你一直接触接口回调,但是自己又一直理解不了,这篇文章会让你秒懂)
- Java回调接口的理解
- 一个经典例子让你彻彻底底理解java回调机制
- java中接口回调与java回调机制
- 一个经典例子让你彻彻底底理解Java回调机制
- 一个经典例子让你彻彻底底理解java回调机制(转)
- 一个经典例子让你彻彻底底理解java回调机制
- java事件监听回调机制的理解
- 一个经典例子让你彻彻底底理解java回调机制
- Java 接口回调机制
- 一个经典例子让你彻彻底底理解java回调机制
- 一个经典例子让你彻彻底底理解java回调机制
- 一个经典例子让你彻彻底底理解java回调机制
- 一个经典例子让你彻彻底底理解java回调机制(一)
- 一个经典例子让你彻彻底底理解java回调机制
- Android对回调接口的理解
- 一个经典例子让你彻彻底底理解java回调机制
- Android 接口回调机制应用