回调机制 Android

来源:互联网 发布:mac word 选择对象 编辑:程序博客网 时间:2024/06/14 11:43

   一直不懂安卓里面的回调机制讲的是啥,今晚终于弄懂了。

   首先我们来看下什么是回调函数:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方法直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

   举一个很经典的例子,小明不知道1+1等于多少,那么他就打了个电话问小王,小王说他在忙,等待会想到了再打电话告诉小明,就这样电话挂了,小王忙完自己的事情后,突然想到了答案,打电话告诉小明答案。这就是异步回调。

   同步回调的经典例子就是按钮被按下的时间。

    实现方式就是定义了一个接口,里面有相应的方法,A类实现了这个接口,具有接口的声明和实现了C方法(参数是对应接口),在A类中调用了B类的某个方法,B类处理完之后回调A类的C方法,这就是整个回调过程。

                 与监听机制对比:

对于基于监听的事件处理模型来说,事件源和事件监听器是分离的,当事件源发生特定事件之后,该事件交给事件监听器负责处理

对于基于回调的事件处理模型来说,事件源和事件时统一的 ,当事件源发生特定事件之后,该事件还是事件源本身来负责处理


                        基于回调事件的传播:

几乎所有基于回调事件处理方法都有一个boolean类的返回值,该返回值是用来表示处理方法是否能完全处理该事件。

如果返回的是true,表示该方法以完全处理,不会在传播

如果返回的是false,表示该放的没有完全处理,需要继续传播

其中的传播顺序为:绑定在该按键的事件监听器-》提供事件的回调方法-》该组件所在的Activity

                 与监听机制的优缺点比较:

1.基于监听的事件模型分工更明确,事件源、事件监听由两个类分开实现,因此具有更好的课维护性

2.Android的事件处理机制保障基于监听的事件会被优先触发

3.基于回调的事件模型在某些特定的情况,可以更好的提高程序的内聚性

还有一篇文章讲得很好的,推荐:http://blog.csdn.net/xiaanming/article/details/8703708


                     

0 0
原创粉丝点击