浅谈Android的回调

C不会自己调用b,C提供b的目的就是让S来调用它,而且C不得不提供。S并不知道C提供的b是什么,因此S会约定b的接口规范(函数原型),然后由C提前通过S的一个函数r告诉S自己将要使用b函数(即注册)。r为注册函数。

简单来说:

回调函数就是预留给系统调用的函数,而且我们往往知道该函数被调用的时机

接下来我们看一下完善后的这幅图。     

从这幅图中我们应该大致了解了回调的基本流程。

我们已经大概知道了回调的基本流程,下面,来看看Android中回调的基本使用。

回调方法就是一个通过方法指针来调用的方法。如果我将这个方法的指针(地址,引用)通过形参传递到另一个类的某个方法里,那么当这个类调用该方法里面我所传入的指针时,就能调用我这边的方法。

  整个过程就是我传入方法A的地址,你接收,并在某个时刻回调我这边的A方法。

  由于java没办法操作指针,于是它用接口来实现。

  JAVA方法回调是一种耦合设计思想。作为一种架构,必须有自己的运行环境,并且提供用户的实现接口。

  主要步骤如下:

定义接口 Callback ,包含回调方法 callback();服务端提供注册的方法,并设定在某个条件下会回调接口方法;客户端提供接口的实现方法,并注册到服务端,把方法地址传进去。这样,在需要的时候,可用Caller对象的mCallback接口成员调用callback()方法,完成回调了。

android 中回调机制被大量使用。

比如,在Activity中定义了很多生命周期的不同状态要调用的方法,这些方法都是空实现,系统框架要调用,用户也要调用来实现。或者更直接的是按键点击的实现方法。

     OnClickListener就是android 系统所约定好的接口,然后我们写的应用程序就是客户端,android 系统就是服务端。

     接口(系统框架)是系统提供的,接口的实现是用户实现的,这样可以达到接口统一,实现不同的效果。

     系统在不同的状态“回调”我们的实现类,来达到接口和实现的分类。

转载于:https://my.oschina.net/u/2971691/blog/776561

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值