定义接口&监听回调
2016-08-02 13:01
204 查看
代码抽取是一个很好的变成习惯,一定要深刻理解。以一个监听器接口为例
1.抽取代码成方法
2.注释方法,申请监听监听器添加方法
3.监听器做参数传给工具 对象
4.听器内部获取参数
一定要养成 从底层到上层的习惯,而不是反之。
底层到上层一步步是怎么抽取的
从上层到底层:一步步是如何继 实现和复写的
java编程一定要养成抽取的习惯
http://blog.csdn.net/a78270528/article/details/46918601
回调机制
简单来说:回调函数就是预留给系统调用的函数,而且我们往往知道函数被调用的时机。
简单例子,考试答题第一件事就是写上学号和姓名。这里填写的学号和姓名不是自己看的(即该方法不是给自己调用的),而是给老师登记分数时看的(预留给系统调用的),这其实就是一个回调的应用。老师提供接口(输入姓名 学号的规则),我们利用接口注册。
异步+回调的编程模式,按钮点击监听其实就是“回调”最常见的应用场景之一。我们不会显式的调用onclick方法。用户触发了该按钮的点击事件之后,会由Android系统自动调用。
activity的整个生命周期也是回调函数在发生作用。
举个例子:我打电话给你请教问题,你一时想不出解决方法,我又不能干等,于是我们呢约定:等你有了答案打手机通知我,过了xx分钟,我的手机响了,你说问题已经搞定,应该如此这般处理。
其中你后来打手机告诉我结果就是一个回调的的过程。我的手机号码必须在之前告诉你,这就是一个注册回调函数的过程。我的手机号码应该有效,并且能够接收你的呼叫,这是回调函数必须符合接口规范。
C不会自己调用b,C提供b的目的就是让S来调用它,而且C不得不提供。S并不知道C提供的b是什么,因此S会约定b的接口规范(函数原型),然后由C提前通过S的一个函数r告诉S自己将要使用b函数(即注册)。r为注册函数。
简单来说:回调函数就是预留给系统调用的函数,而且我们往往知道该函数被调用的时机,那我们继续完善下上面的那幅图。
1.抽取代码成方法
2.注释方法,申请监听监听器添加方法
3.监听器做参数传给工具 对象
4.听器内部获取参数
一定要养成 从底层到上层的习惯,而不是反之。
底层到上层一步步是怎么抽取的
从上层到底层:一步步是如何继 实现和复写的
java编程一定要养成抽取的习惯
http://blog.csdn.net/a78270528/article/details/46918601
回调机制
简单来说:回调函数就是预留给系统调用的函数,而且我们往往知道函数被调用的时机。
简单例子,考试答题第一件事就是写上学号和姓名。这里填写的学号和姓名不是自己看的(即该方法不是给自己调用的),而是给老师登记分数时看的(预留给系统调用的),这其实就是一个回调的应用。老师提供接口(输入姓名 学号的规则),我们利用接口注册。
异步+回调的编程模式,按钮点击监听其实就是“回调”最常见的应用场景之一。我们不会显式的调用onclick方法。用户触发了该按钮的点击事件之后,会由Android系统自动调用。
activity的整个生命周期也是回调函数在发生作用。
举个例子:我打电话给你请教问题,你一时想不出解决方法,我又不能干等,于是我们呢约定:等你有了答案打手机通知我,过了xx分钟,我的手机响了,你说问题已经搞定,应该如此这般处理。
其中你后来打手机告诉我结果就是一个回调的的过程。我的手机号码必须在之前告诉你,这就是一个注册回调函数的过程。我的手机号码应该有效,并且能够接收你的呼叫,这是回调函数必须符合接口规范。
C不会自己调用b,C提供b的目的就是让S来调用它,而且C不得不提供。S并不知道C提供的b是什么,因此S会约定b的接口规范(函数原型),然后由C提前通过S的一个函数r告诉S自己将要使用b函数(即注册)。r为注册函数。
简单来说:回调函数就是预留给系统调用的函数,而且我们往往知道该函数被调用的时机,那我们继续完善下上面的那幅图。
public class You implements Runnable { public void You(){ } private String who; private ContactInterface callback; //调用此方法就表示有人联系你了,注册到你这来 即set方法就是图中的r方法 public void setCallback(String who,String question,ContactInterface callback) { this.who=who; this.callback = callback; System.out.print("你说:当前联系我的人是"+who+",问题是:"+question); } //接口类,定义规范 public interface ContactInterface{ public void callBackByTel(String answer); } @Override public void run() { try { Thread.sleep(1000); handleThings(); } catch (InterruptedException e) { e.printStackTrace(); } } private void handleThings() { for(int i=0;i<100000;i++){ if(i == 0){ System.out.println("你正在思考问题....."); } } String answer="答案是A"; System.out.print("你说:想到答案了,准备打回去给"+who+"告诉他答案"); //s回调c中的方法b callback.callBackByTel(answer); } }
public class Me { public static void main(String[] args){ Me me=new Me(); me.hasQuestion(); } private void hasQuestion() { You you = new You(); you.setCallback("蜗牛", "某道题答案是什么", new You.ContactInterface() { @Override //此即为回调函数 public void callBackByTel(String answer) { System.out.print("我说:嗯,好的,我收到答案了"+answer+"谢谢你!"); } }); new Thread(you).start(); } }
相关文章推荐
- [待修改]java接口用法:向上转型和回调函数 回调机制在 Android 监听用户界面操作中的体现
- 基于AppDomain的插件开发-由接口定义回调执行域(五)
- [读书笔记]监听事件的四种方式原理分析(接口回调)与比较
- 接口与回调(相关话题:特定事件发生应该采取动作、监听)
- 在适配器中点击监听给activity中的控件赋值,采用接口回调的方式
- Firefox 扩展系列 &ndash; Firefox Extension IDL 定义组件接口
- C# 接口属性的定义&get、set访问器的简单应用
- Android onclick监听 接口回调机制 解析
- <Android>关于 Android 中的OnScrollListener监听接口
- PhoneStateListener回调接口和Connectivity广播监听实际比较
- 接口与实现分离:"对类声明的依赖" 取代"对类定义的依赖",类实现部分发生变动时,不需要重新编译,降低编译依赖性
- 回调函数教程(一):回调函数定义及用接口实现的实例
- > > 6.6.2接口的定义
- Android中添加监听回调接口的方法
- Java TreeSet集合排序 && 定义一个类实现Comparator接口,覆盖compare方法 && 按照字符串长度排序
- PreparedStatementCallback PreparedStatement回调接口定义
- 14. JAVA 枚举(Enum、类集EnumMap&EnumSet 、实现接口、定义抽象方法) ----- 学习笔记
- Java接口回调模拟按钮监听
- C# 接口属性的定义&get、set访问器的简单应用
- mvp 适配器里面接口回调 适配器定义接口 activity实现