具体步骤:

一、建模

回调函数的关键是:将一段代码作为参数传递,而这段代码将会在某个时刻被执行

我理解的接口回调就是,我这个类实现了一个接口里的方法doSomething,然后注册到你这里,然后我就去做别的事情去了,

你在某个触发的时机回头来调用我doSomething的方法。好比,我给你打电话问某个难题,你电话里想不出来,于是说等想到了再回我电话。

第一步:

注册约定接口:

第二步:

我得先打电话(注册)到你那里,告诉你我的问题是什么!

所以你那里必须有个方法让我告诉你问题相关事宜(注册).

第三步:

当你想到问题的答案后,打电话告诉我答案,即回调我传进来的方法.

->整个机制构成三要素就是:我(客户端),你(服务端),约定(接口)

###我类###

###你类###

###接口类###

二、总结

Java 中没有函数指针这一说,因为java没有指针,但是并不代表着它不会使用这个功能。事实上,引用就是实现了指针的功能。回调方法就是一个通过方法指针来调用的方法。

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

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

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

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

主要步骤如下:

定义接口 Callback ,包含回调方法 callback();

服务端提供注册的方法,并设定在某个条件下会回调接口方法;

客户端提供接口的实现方法,并注册到服务端,把方法地址传进去。

这样,在需要的时候,可用Caller对象的mCallback接口成员调用callback()方法,完成回调了。

三、Android中的回调机制

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

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

明显,OnClickListener就是android 系统所约定好的接口,然后我们写的应用程序就是客户端,android 系统就是服务端。模型关系如下图所示:

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

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

 

MTK Android 回调机制[CallBack]的更多相关文章

  1. JAVA回调机制(CallBack)详解

    序言 最近学习java,接触到了回调机制(CallBack).初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义.当然了,我在理解了回 ...

  2. [转]JAVA回调机制(CallBack)详解

    看见一篇博客比较通俗的解释了回调机制,转载一下,感谢原文作者Bro__超,原文地址:http://www.cnblogs.com/heshuchao/p/5376298.html 序言 最近学习jav ...

  3. Hibernate操作数据库的回调机制--Callback

     1:一般情况下,在使用Hibernate Session存取数据库的代码中,基本上大部分是相同的,如下两个方法所示, //查询Teacher操作 ublic Teacher getTeacher ...

  4. android 回调机制实例!

    详细实现为在类中定义接口.在接口的实现方法中传入參数(也能够不传). 在调用类中传入新建的接口.并实现未实现的方法. public class CallBackClass { //传入对应的接口作为參 ...

  5. JAVA 回调机制(callback)

    序言 最近学习java,接触到了回调机制(CallBack).初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义.当然了,我在理解了回 ...

  6. Java回调机制总结

    调用和回调机制 在一个应用系统中, 无论使用何种语言开发, 必然存在模块之间的调用, 调用的方式分为几种: 1.同步调用 同步调用是最基本并且最简单的一种调用方式, 类A的方法a()调用类B的方法b( ...

  7. Android的事件处理机制(一)------基于回调机制的事件处理

    Android平台的事件处理机制有两种,一种是基于回调机制的,一种是基于监听接口的,现介绍第一种:基于回调机制的事件处理.Android平台中,每个View都有自己的处理事件的回调方法,开发人员可以通 ...

  8. 弄明白Android 接口回调机制

    以前对于这个机制理解不够深刻,现在重新整理下思路. 一.建模 我理解的接口回调就是,我这个类实现了一个接口里的方法doSomething,然后注册到你这里,然后我就去做别的事情去了,你在某个触发的时机 ...

  9. JAVA和Android的回调机制

    本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),请尊重他人的辛勤劳动成果,谢谢 以 前不理解什么叫回 ...

随机推荐

  1. 深入探索 TCP TIME-WAIT

    1​ TIME-WAIT 状态 主动关闭连接的一方,在四次挥手最后一次发送 ACK 后,进入 TIME_WAIT 状态.在这个状态里,主动关闭连接一方等待 2MSL(Maximum Segment L ...

  2. 如何使用Logstash

    目录 一.什么是Logstash 二.如何安装 三.快速使用 四.Input输入插件 五.codec编码插件 六.filter过滤器插件 七.output输出插件 八.总结 一.什么是Logstash ...

  3. java输入输出流操作同一资源实现覆盖引发冲突的解析

    一.问题发生的场景 题目:把s.txt中大写转成小写,小写转成大写,空格转成下划线,在输入到文件中覆盖之前的 前面的没有问题,问题出现在后面的覆盖文件上,输入流.输出流要操作同一个文件的问题 二.小白 ...

  4. vue 阻止冒泡 @click.stop=

    vue 阻止冒泡 @click.stop= vue中处理冒泡标准姿势 事件修饰符 Vue.js 为 v-on 提供了事件修饰符,修饰符是由点开头的指令后缀来表示的.这些事件修饰符主要有以下几个: st ...

  5. created:异步初始化数据都应该放到 created里面

    created:异步初始化数据都应该放到 created里面

  6. 公钥体系(PKI)等密码学技术基础

    公钥体系(PKI)等密码学技术基础 公钥体系(Public Key Infrastructure, PKI)的一些概念 对称密码算法, 典型算法:DES, AES 加解密方共用一个密钥 加/解密速度快 ...

  7. C++ 深拷贝和浅拷贝详解

    前言 在对象拷贝过程中,如果没有自定义拷贝构造函数,系统会提供一个缺省的拷贝构造函数,缺省的拷贝构造函数对于基本类型的成员变量,按字节复制,对于类类型成员变量,调用其相应类型的拷贝构造函数. 位拷贝( ...

  8. Journal of Proteome Research | iHPDM: In Silico Human Proteome Digestion Map with Proteolytic Peptide Analysis and Graphical Visualizations(iHPDM: 人类蛋白质组理论酶解图谱的水解肽段分析和可视化展示)| (解读人:邓亚美)

    文献名:iHPDM: In Silico Human Proteome Digestion Map with Proteolytic Peptide Analysis and Graphical Vi ...

  9. 关于Quartz .NET(V3.0.7)的简要说明

    目录 0. 任务调度 1. Quartz .NET 1.1 基本概念 1.2 主要接口和对象 2. 使用示例 2.0 准备工作 2.1 每间隔一定时间间隔执行一次任务 2.3 某天的固定时间点执行任务 ...

  10. 贵州省网络安全知识竞赛团体赛Writeup-phpweb部分

    0x01 混淆后门#conn.php 首先还是拖到D盾扫描 打开conn.php发现底部有那么一串代码: 对这个代码进行分析 首先可以对几个比较简单的变量输出看一下 $s输出内容为create_fun ...