1、概念

客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。

一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。

由于S并不知道C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个过程称为回调函数的注册,R称为注册函数。

2、举个栗子

某天,我打电话向你请教问题,当然是个难题,^_^,你一时想不出解决方法,我又不能拿着电话在那里傻等,于是我们约定:等你想出办法后打手机通知我,这样,我就挂掉电话办其它事情去了。过了XX分钟,我的手机响了,你兴高采烈的说问题已经搞定,应该如此这般处理。故事到此结束。这个例子说明了“异步+回调”的编程模式。其中,你后来打手机告诉我结果便是一个“回调”过程;我的手机号码必须在以前告诉你,这便是注册回调函数;我的手机号码应该有效并且手机能够接收到你的呼叫,这是回调函数必须符合接口规范。

3、举个Android 实例

a.定义接口
   public interface OnClickListener {
     public void OnClick(Button b);

}

b. 定义Button
  public class Button {
    OnClickListener listener;
      public void click() {
        listener.OnClick(this);
      }
      public void setOnClickListener(OnClickListener listener) {
        this.listener = listener;
      }
   }

c. 将接口对象OnClickListener 赋给 Button 的接口成员
    public class Activity {
        Button button = new Button();
        button.setOnClickListener(new OnClickListener(){
          @Override
          public void OnClick(Button b) {
            System.out.println("clicked");
          }
        });
        button.click(); //user click,System call button.click();
      }
    }

 4、应用实例 

android 回调函数二:应用实例

android 回调函数一:基本概念相关推荐

  1. android 回调函数二:应用实例

    前言:如果对android回调的概念不明白的请看:android 回调函数一:基本概念 1.定义接口 package com.app.util;public interface ZYJCallBack ...

  2. Android回调函数理解

    Android回调函数理解,比如我用一个activity去做显示下载进度的一个进度条,但是下载是另外一个B类来做的,这个时候我Activity获取下载的进度就可以提供一个回调接口,然后让下载类来回调就 ...

  3. android回调函数

    版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/46837287 在我们进行android开发 ...

  4. Android回调函数机制那点事

    引言 在Android的学习过程中经常会听到或者见到"回调"这个词,那么什么是回调呢?所谓的回调函数就是:在A类中定义了一个方法,这个方法中用到了一个接口和该接口中的抽象方法,但是 ...

  5. android final函数,Android 回调函数 解析问题

    大家先看看我的代码,Okhttp访问接口返回json 然后 解析回调的例子 public static void get(String url, final CallBack callback) { ...

  6. Android和Java中的回调函数

    在 Android 的学习过程中遇到了回调函数,经过一段时间的理解,将自己的收获整理如下,希望对迫切希望了解这方面知识的同学有所启发. 回调函数的理解如下: 在A类中定义了一个方法,这个方法中用到了一 ...

  7. 【 C 】回调函数简记

    最近心特别浮躁,还没到晚上十点,就安定不下来了,但是这篇博文还必须记完! 上篇博文:函数指针,对这篇博文的理解也比较重要. <c 与 指针>对于回调函数讲的也比较细致了,耐心看完,也会收获 ...

  8. C语言、嵌入式重点知识:回调函数

    前言 上文分享了一个专用的双链表的基本操作示例:双链表的操作示例(附代码) 这里提到了一个关键词:专用.与专用对应的词是通用. 我们从字面上可以很容易理解这两个词,专用就是针对特定情况的,特点就是很有 ...

  9. Python之进程+线程+协程(进程间通信、进程同步、进程池、回调函数)

    文章目录 进程间通信 进程同步 进程池 回调函数 本篇文章依然是进程.线程方面的内容,主要讲进程间的通信.进程队列.进程同步.进程池.进程同步和回调函数 进程间通信 进程就是两个独立的内存空间在运行, ...

最新文章

  1. Nucleus 实时操作系统中断(上)
  2. jquery扩张函数
  3. html 图片 保持长宽比,实现图片在页面中宽高一直保持16:9比例的方法
  4. Java 8的方法参考进一步限制了重载
  5. nova8pro能升级鸿蒙吗,华为将有48款产品可以升级到鸿蒙 2.0系统
  6. linux下enum类型占几个字节,enum大小问题
  7. python 解三阶多项式系数_python – 评估多项式系数
  8. 《个体软件过程》—第1章1.3节个体软件过程
  9. 开始学习python标准库---os
  10. 酒吧手机游戏java_酒吧里24种常见游戏的玩法
  11. 服务器自动ip使用,自动或手动设置IP地址图解教程
  12. 极速office(Word)怎么删除背景颜色
  13. java 实现排列组合输出
  14. 【每日爬虫】:利用线程池爬取百思不得姐段子
  15. 最强蜗牛服务器维护祷告bug,最强蜗牛地缝bug是什么 最强蜗牛地缝事件漏洞说明...
  16. LintCode 138.子数组之和
  17. 垃圾填埋场渗滤液厌氧处理过程中沼气的综合利用
  18. 加密扩展库+php,PHP加密扩展库—Mcrypt扩展库
  19. 又遇:只有偏执狂才能生存
  20. 机器人学:四元数插值方法SLERP和SQUAD的C语言实现

热门文章

  1. 2.利用计算机进行信息加工的一般过程是:,[信息技术教案]《计算机信息加工的一般过程》教案...
  2. python库文档的错误_自己编程中遇到的Python错误和解决方法汇总整理
  3. xwpython aui 子窗口-wxpython中的wxaui窗口管理器
  4. 【数据分析实例】6000 条倒闭企业数据分析
  5. 七十一、Python | Leetcode字符串系列(上篇)
  6. 十三、欧拉离散化计算期权定价期权定价
  7. 十五、JavaScript进度条的制作
  8. MyEclipse报错:String cannot be resolved to a type
  9. 研究生一年级,非计算机专业,自学机器学习现实吗?
  10. CVPR 2022 | GeoTransformer:基于Transformer的点云配准网络