android 接口回调全面,Android 回调机制--接口回调

刚开始学习接口回调的时候,乍一听接口回调这个名词感觉很高大上一样 于是就去网上找了一些接口回调的知识 网上总结的接口回调知识 感觉太臃肿 又是图 又是代码的搞不清楚 所以今天就把我对接口回调的理解分享给大家 希望刚学习这个知识点的朋友看了我的这篇文章 会很清楚理解接口回调这个知识点 也希望大家多提意见 对我的错误及时纠正 废话不多说 开始吧!

分析接口回调的话 我们就举一个小小的例子来解释一下 看下图:

6c1555302777729326ca3efa0910d9ec.png 

小圆点初始状态

在这里我就简单的画一幅图 大家理解这个意思就行 这是我们自定义的一个控件(不了解自定义控件的朋友也没事 明白这个意思即可) 我们的需求是滑动小圆点然后让外面的类或者activity或者其他的控件知道我们的自定义控件发生了状态的改变 然后根据这个状态的改变做出相应的逻辑处理

6c1555302777729326ca3efa0910d9ec.png 

小圆点滑到最右端通知外部

这个时候我们就要思考一个问题 小圆点滑到最右端 通过什么方式通知外部呢 这个时候我们就要用到接口了 我们先说明接口的步骤 然后再一步一步解释

第一步:我们要在自定义控件里定义一个接口(相当于买一个监听器)这个接口用来储存我们小绿点发生的状态改变

6c1555302777729326ca3efa0910d9ec.png 

第二步:定义一个方法 (相当于设置监听器) 让外部的类来调用这个方法 这个方法里面放一个监听器(也就是第一步里设置的那个监听器) 重点来了  在这个方法里初始化我们的监听器 把他mListener = listener

6c1555302777729326ca3efa0910d9ec.png 

第三步:在状态发生改变的地方调用我们的监听方法(我们自定义控件内部是知道自己的状态发生的改变)

6c1555302777729326ca3efa0910d9ec.png 

第四步:在需要我们自定义控件状态发生改变的类里或者activity里找到这个控件然后设置监听

6c1555302777729326ca3efa0910d9ec.png 

现在我们来分析这四部:

在第四步里我们传的那个监听器 传到我们的第二步里 然后把第四步传过来的监听器赋值 然后调用第三步的方法 重点来了 也就是接口回调的核心 我们可以看到在第三步里调用的mListener.onLock()方法 其实就是回调我们的第四步的onLock()方法 为什么了?因为我们第四步传过去的对象把他赋值给了mListener ,其实他们两个是同一个对象,所以mListener.onLock()就是回调我们第四步里的onLock()方法 这个是整个回调的核心.

讲到这里 还是多讲一点 接口回调的主要作用

假设我们的activity想要拿到我们自定义控件的状态然后finish()掉我们的activity(就相当于滑动解锁)  我们可以看到在我们自定义控件类里面 其实我们是可以拿到activity 然后finish掉自己 但是我们没有这样做 因为大家可以想象一下 这个自定义控件是在activity里面 如果我们的自定义控件是在dialog里面 或者其他的类里面 当我们想要关闭它时 那我们就需要修改自定义控件里的代码了 然后dismiss掉 这样拓展性一点也不好,而我们使用接口回调这一方法的作用就是 自定义控件自身发生了改变 然后把这个信息发布出去 谁想要得到这个信息就监听他的状态然后做出相应的逻辑处理 这就体现了接口回调的主要作用 那就是解耦合的作用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值