总结 安卓的 回调机制
1.编程工作的层次 : 系统编程(写库方法,写API)
应用编程(调用API去实现功能)
2. 系统和应用如何统一起来去实现一个功能?
用三种机制去解决 a. 同步机制
b. 异步机制
c. 回调机制
3.一般正向代码 流程 都是 应用调用 API 的方法 去实现功能。
举个例子:
快速取快递,方法一:轮询(不停弟下楼去查看快递到家没有)
方法二 :委托(叫保安电话通知)
回调函数 就是自己写的,但不是自己来调用,而是给别人来调用的函数。
回调函数 又称为 钩子函数。
回调的过程 分三个部分 :起始函数
中间函数
回调函数
上层调用下层了,下层执行回调函数。
如图所示:
回调方式 :阻塞式回调
延迟式回调
回调方法的优势: 异步回调
示例图1:
示例图2:
类比: 框架模式之 -----------------观察者模式
定义: 对象之间 的一种 一对多的 依赖关系。
当一个 对象的状态发生 改变之时,所有依赖 它的对象都得到了 通知 并且自动更新。
类似于:
角色概念:
Subject(被观察者): 提供一个 具体被观察者的 接口,定义了 添加,移除,通知等操作。
ConcreteSubject( 具体被观察者) : 实现或者继承Subject 将有关的状态存入具体观察者对象,在内部状态变化时候,通知其所有的ConCreteObserver(具体观察者)。
Observer( 抽象观察者) : 提供一个 具体观察者 接口,定义了 实现通知的方法。
ConCreteObserver(具体观察者): 实现Observer,实现 或者 继承 通知方法,根据不同需求,添加逻辑代码。
目标Demo:
当订阅一个微信公众号时,如果这个微信公众号有新的推送消息,就会收到这个推送消息。
在这里:
微信公众号-----------》被观察者(Subject)
其中一个公众号----------》具体被观察者(ConcreteSubject)
全部订阅者-----------》抽象观察者(Observer)
其中一个订阅者------》具有观察者(ConcreteObserver)