初识java接口回调机制与androidView的触发事件回调
2015-04-27 15:58
381 查看
回调:
概念网上各大blog都有说,这里我就不说了,直接说理解吧。
一、建模
我理解的接口回调就是,我这个类实现了一个接口里的方法doSomething,然后注册到你这里,然后我就去做别的事情去了,你在某个触发的时机回头来调用我doSomething的方法。好比,我给你打电话问某个难题,你电话里想不出来,于是说等想到了再回我电话。于是接口回调机制比喻模型如下
Android中:好比你的Button点击之后会直接调用你写重写的Onclick(),为什么?
那是因为很多系统的类你理解的不是很好,需要看源码。
首先我们用匿名类的形式重写View.OnClickListenner(){
public void onclick(){
//dosomething
};
}
然后把这个接口的对象通过SetonClickListenner传给View类,当点击时,会调用view类的
public boolean callOnClick() {
ListenerInfo li = mListenerInfo;//就是你传过来的onclickListenner对象
if (li != null && li.mOnClickListener != null) {
li.mOnClickListener.onClick(this);
return true;
}
return false;
}
调用你写的onclick方法
二:抽象使用
1:第一步在类A中重写接口方法
2:第二步传接口的对象给类B
3:当类B到触发条件时,执行类A接口中的方法(回调)
三:实战
1:在Me类中,匿名类形式实例接口并重写方法
public class Me{
public static void main(String[] args){
//我有个问题要问你
System.out.println("ME:问你个问题。。。");
You you = new You();
you.setcallback(new callback() {
@Override
public void oncallback() {
// TODO Auto-generated method stub
System.out.println("ME:谢谢你通知我,我要做事了");
}
});
}
}
2:通过setListenner把callback的传递过去 见上面
3:在类YOU中使用callback的oncallback方法
public class You {
callback mcalCallback;
public void setcallback(callback mCallback){
this.mcalCallback = mCallback;
System.out.println("YOU:收到你的问题了。。。等5秒告诉你");
new Thread(){
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
try {
Thread.sleep(5000);
System.out.println("YOU:告诉你了。。。");
mcalCallback.oncallback();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}.start();
}
}
4:测试结果如下
ME:问你个问题。。。
YOU:收到你的问题了。。。等5秒告诉你
ME:谢谢你通知我,我要做事了
暂时java的接口回调就研究在这里。
相关文章推荐
- Android ViewGroup中事件触发和传递机制
- Android ViewGroup中事件触发和传递机制
- Android ViewGroup中事件触发和传递机制
- Android ViewGroup中事件触发和传递机制
- Android ViewGroup中事件触发和传递机制
- android ViewGroup中事件触发和传递机制
- Android Activity 和 ViewGroup中事件触发和传递机制
- Android Activity 和 ViewGroup中事件触发和传递机制
- Android Activity 和 ViewGroup中事件触发和传递机制
- Android ViewGroup中事件触发和传递机制
- Android Activity 和 ViewGroup中事件触发和传递机制
- Android ViewGroup中事件触发和传递机制
- 详解Android中回调机制与RecyclerView的Item点击事件实现
- Android ViewGroup中事件触发和传递机制
- Android ViewGroup中事件触发和传递机制
- (转)Android ViewGroup中事件触发和传递机制
- Android View 事件分发机制 源码解析
- android view触摸事件传递机制测试
- Android触摸屏事件派发机制详解与源码分析一(View篇)
- android viewgroup事件分发机制