Android回调机制的理解

定义:

所谓回调就是说一个程序里面有一个函数a,我在这个程序里面调用b函数,我希望b函数来调用我的a函数,这个a函数就叫做回调函数。(网上看了好久才明白0-0)

C++对回调的实现:

比如说我在程序里面调用qsort(a,a+n,cmp)这该快排函数,其中a是数组,n是数组元素的个数,而cmp函数是自己的程序里面定义的。我想让qsort来调用我的cmp函数,就要吧cmp函数指针传给qsort,这样qsort就可以来调用我的cmp函数了。这就实现了回调,而这个cmp函数就叫做回调函数。

Android对回调的实现:

对于JAVA来说,没用函数指针这一说法,于是用一个接口来实现函数的回调,拿Button来说吧。

一个类A实现OnClickListener接口,也就实现了onClick()方法,A想让Button来调用A的onClick()方法,于是先调用Button对象的setOnClickListener(OnClickListener  l)方法将A这个实现了OnClickListener的对象传到Button(Button类肯定有一个OnClickListener的引用),于是通过这个引用,Button就可以来调用A的onClick()方法了,也就实现了回调。

理解了好久,希望各位大神多多指教。

时间: 2024-10-14 15:10:57

Android回调机制的理解的相关文章

java Android 回调机制的详解

以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,看了人家说比较经典的回调方式: Class A实现接口CallBack callback--背景1 class A中包含一个class B的引用b --背景2 class B有一个参数为call

java中的回调机制的理解(小例子)

这样的解释似乎还是比较难懂,这里举个简单的例子,程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序.程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法.目的达到.在C/C++中,要用回调函数,被掉函数需要告诉调用者自己的指针地址,但在JAVA中没有指针,怎么办?我们可以通过接口(interface)来实现定义回调函数. 正常情况下开发人员使用已经定义好的API,这个过程叫Call.但是有时这样不能满足需求,就需要程序员注册自己的程序,然后让

android 回调机制应用场景

简述android/java回调机制调用流程: 在A类中调用B类中的方法method_B(CallBack call , ...) ,然后在B类中调用A类中的方法method_A(...) 上述流程的前提背景: 1. A类实现一个回调接口CallBack 2. A类中有B类的实例b 3. B类中的方法method_B(CallBack  call , ...) 一定包含CallBack类型参数(即A类的实例) 回调机制应用场景: 1. 开发场景:例如Activity调用另一个类中的方法,在该方法

Java 回调机制的理解

// 在接口中声明一个处理耗时操作结果的回调方法. // Local 实现这个接口,实现处理耗时操作结果的回调方法. // Remote 的构造方法需要传入 Local 的引用 // Local 获得 Remote 对象,在子线程中调用 Remote 的处理耗时操作的方法 // Remote 处理耗时操作,处理完之后调用 Local 的回调方法--一般不可见 // Local 的回调方法被执行

android 回调机制实例!

具体实现为在类中定义接口,在接口的实现方法中传入参数(也可以不传). 在调用类中传入新建的接口,并实现未实现的方法. public class CallBackClass { //传入相应的接口作为参数 public void huidiao(final runDate rundate) { //使用线程代替系统的事件 new Thread() { int i = 0; @Override public void run() { super.run(); while(true) { i++; /

java回调机制——基本理解

回调(diao):往回调用,反向调用. 英文 call back.call:调用,back:返回,往返. 回调的意思就是杀个回马枪...... 回调(callback),既然是往回调用,那自然有一个正向调用.也就是说,先有一个call,然后有一个callback. 回调的过程: 类A的a()方法调用类B的b()方法,这里往往将A的实例(this)作为参数传入到b()方法; 类B的b()方法回调类A的c()方法. 参考资料:https://www.cnblogs.com/xrq730/p/6424

理解Android事件处理机制

Android的事件处理机制分为两大类:基于监听器和基于回调 1.基于监听器的事件处理 这种处理方式和Java的GUI组件监听器的几乎一样,是一种委托式的处理办法.即如果View组件(事件源)被单击或者长按(事件)后,系统将这个单击事件委托给特定对象(监听器)处理,特定对象可以是Listener对象也可以是组件指定的事件处理方法.这里涉及到三个成员:事件源,事件和监听器.其中监听器是核心,它包含了事件的处理的实现. 下面是一个简单的Button监听器,采用匿名内部类的实现形式.界面布局文件只是线

Android原理——回调机制

Android回调机制 回调函数可以把调用者与被调用者分开,调用者不关心谁是被调用者,调用者只需知道具有特定原型和限制条件的被调函数. 1.定义一个回调函数: 2.提供函数实现的一方在初始化的时候,将回调函数的实例化接口提交给调用者: 3.当特定的事件或条件发生的时候,调用者使用接口调用回调函数对事件进行处理. 看到过一句写的比较好的描述:A类中调用B类的某个方法C,然后B类中反过来调用A类的方法D,D这个方法就叫回调方法 先引用一个Android源码中经典的例子: //接口类, B类实现接口,

Android绘图机制(一) View类

对android绘图机制的理解,在Android学习中可谓至关重要,包括自定义控件也是使用非常频繁的内容.最近在项目中遇到一个比较棘手的问题,项目中好几个模块都用到ListView或者GridView的”下拉刷新,上拉加载更多“功能 .一开始在网上找了大牛写的作品,用在项目中后发现时不时会出现卡壳的现象,改进以后会有所改善,不过还是感觉有所欠缺.无奈我是个处女座菜鸟,尝试着找出这些问题的根本原因却发现无从下手,所以先补补基础.( 纯文字看着确实很费劲,所以顺便引用下其他的文章)  概述 View