• 什么是回调

回调其实是一种双向调用模式,也就是调用方在接口被调用时也会调用对方的接口。通俗的解释为:类A调用了类B中的方法1,然后类B最后又反过来调用类A中的方法2,即把结果返回给类A。

  • 回调的具体实现(通过接口)

   1、Class A实现接口CallBack callback——背景1

   2、class A中包含一个class B的引用b ——背景2

   3、class B有一个参数为callback的方法f(CallBack callback) ——背景3

   4、A的对象a调用B的方法 f(CallBack callback) ——A类调用B类的某个方法 C

   5、然后B就可以在f(CallBack callback)方法中调用A的方法 ——B类调用A类的某个方法D

  这里通过一个经典的例子来说明回调的具体实现机制,在这个机制里,包含两个类和一个接口,接口的定义如下:

//相当于接口InA
public interface BoomWTC{
//获得拉登的决定
public benLaDengDecide(); // 执行轰炸世贸
public void boom();
}

  类A的定义如下,它作为一个主类,实现了接口

//相当于class A
public class At$911 implements BoomWTC{
private boolean decide;
private TerroristAttack ta; //类B public At$911(){ //构造函数
Date now=new Date();
SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm");
this.dicede= myFmt.format(dt).equals("01/09/11 09:44");
this.ta=new TerroristAttack();
} //获得拉登的决定
public boolean benLaDengDecide(){
return decide;
} // 执行轰炸世贸
public void boom(){
ta.attack(new At$911);//class A调用class B的方法传入自己的对象,相当于【you call me】
}
}

  类B的定义如下:

public class TerroristAttack{
public TerroristAttack(){
} public attack(BoomWTC bmw){ //调用类A中的方法
if(bmw.benLaDengDecide()){ /*class B在方法中回调class A的方法,相当于【i call you back】*/
   
}
}
}

  从例子可以看出,类B是通过接口回调了类A的方法

程序猿必读

android 回调的理解(结合接口)的更多相关文章

  1. Android 回调的理解,觉得写得好就转过来。。。收藏一下

    转自:一个经典例子让你彻彻底底理解java回调机制 以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所 ...

  2. Android回调接口的写法

    方法一: 定义一个接口,里面写想要对外提供的方法,在逻辑层方法的参数里传递进去,让在需要的时候调接口里的方法. 实例一: public class SmsUtils { public interfac ...

  3. android官方Api 理解Activity生命周期的回调机制(适合有基础的人看)

    原文地址:http://www.android-doc.com/training/basics/activity-lifecycle/starting.html#lifecycle-states 此处 ...

  4. Android回调详解

         很多时候开发遇到一些Ui更新 网络数据获取,或者方法方法传递的时候会借助回调函数,那么什么是回调函数 百度百科是这么解释的  转载请标注出处 http://blog.csdn.net/sk7 ...

  5. MTK Android 回调机制[CallBack]

    具体步骤: 一.建模 回调函数的关键是:将一段代码作为参数传递,而这段代码将会在某个时刻被执行 我理解的接口回调就是,我这个类实现了一个接口里的方法doSomething,然后注册到你这里,然后我就去 ...

  6. [译]:Xamarin.Android开发入门——Hello,Android Multiscreen深入理解

    原文链接:Hello, Android Multiscreen_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android Multiscreen深入理解. 本 ...

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

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

  8. android 回调函数一:基本概念

    1.概念 客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数. 一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C ...

  9. android回调函数

    在我们进行android开发的时候,常常遇到一些回调函数,当中,我们最常常使用的回调就是,当我们对一个组件设置监听的时候,事实上就相对于设置的回调函数.比如: Button btn = (Button ...

随机推荐

  1. [Effective Java]第六章 枚举和注解

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. [转载] 理解RESTful架构

    原文: http://www.ruanyifeng.com/blog/2011/09/restful.html 理解RESTful架构   作者: 阮一峰 日期: 2011年9月12日 越来越多的人开 ...

  3. poj2540Hotter Colder(半平面交)

    链接 根据距离可以列得直线方程,附上初始矩形的四个顶点,依次用直线切割. #include<iostream> #include <stdio.h> #include < ...

  4. Python SSH登陆--pexpect,pxssh

    from pexpect import pxssh host = '192.168.80.139'user = 'allen'password = 'allen'command = 'df -h' d ...

  5. linux内核的熵池

    也可以看百度科 Linux内核采用熵来描述数据的随机性.熵(entropy)是描述系统混乱无序程度的物理量,一个系统的熵越大则说明该系统的有序性越差,即不确定性越大.在信息学中,熵被用来表征一个符号或 ...

  6. hdu 3117 Fibonacci Numbers

    这道题其实也是水题来的,求Fibonacci数的前4位和后4位,在n==40这里分界开.后4位不难求,因为n达到了10^18的规模,所以只能用矩阵快速幂来求了,但在输出后4位的时候一定要注意前导0的处 ...

  7. 【Linux日志】系统日志及分析

    Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息. 大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 / ...

  8. Java Date与SimpleDateFormat

    最近在弄一些涉及到时间处理的项目.本来自己写了一个时间转换函数,虽然能用但是过于麻烦而且不够规范,于是学习了下java自带的时间处理的类. public class Timechg { public ...

  9. Android控件之ImageView(显示图片的控件)

    一.ImageView属性: android:src = "@drawable/ic_launcher"——ImageView的内容图像(可以和android:background ...

  10. Jquery_改变背景颜色

    $(this).addClass("car_check").siblings().removeClass("car_check");//设置全部车辆为选中状态