关闭

java回忆录——接口回调机制(1)

标签: Javacallbackandroid
262人阅读 评论(0) 收藏 举报
分类:

回忆一些丢了的东西,蛮有心得的


在java中回调机制是用得很多的,比如Runnable 中的run方法 ,在Android里面也大量用到了这种机制,其实也不是很难,在生活中我们也遇到这个 最明显的就是打电话。

什么是回调,网上有很多通俗的解释:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调 ,其实就是:我打你脑袋(A类中调用B类中的某个方法C),你抽我大嘴巴子(B类中反过来调用A类中的方法D)这个大嘴巴子就是回调咯,这形象了吧 ^_^

好上代码吧

首先有一个回调的CallBack 接口  自然就有实现类 A

package org.blueskytoolkit.source.callback;

/**
 * 回调接口
 * @author zw
 * 2016年5月30日下午3:16:10
 */
public interface CallBack {

	public void message(String meg);
}

实现类A

package org.blueskytoolkit.source.callback;

/**
 * 实现回调
 * @author zw
 * 2016年5月30日下午3:19:10
 */
public class A implements CallBack {

	/**
	 * 回调的结果
	 * 也就是大嘴巴子
	 */
	@Override
	public void message(String meg) {
		System.err.println(meg);
	}
   private B b;   
   public A(B b){  
       this.b = b;  
   }  
    
   /**
    * A 中的方法
    * @param question
    */
   public void askQuestion(final String question){  
	   System.err.println(question); 
       //这里用一个线程就是异步,  
       new Thread(new Runnable() {  
           @Override  
           public void run() {  
               //调用b中“脑袋”
               b.executeMessage(A.this, question);   
           }  
       }).start();  
         
       other();  
   }  
 
   /**
    * 你懵逼了一会 
    */
   public void other(){  
       System.err.println("执行其他事物---等待B反馈结果");  
   }  

}

package org.blueskytoolkit.source.callback;

public class B {
	 
	/**
	 * 
	 * @param callBack 其实可以理解为 A 对象
	 * @param question A对象传过来的信息
	 */
    public void executeMessage(CallBack callBack, String question){  
        System.err.println("B接收到: "+question);  
          /**
           * 模拟耗时操作
           */
        for(int i=0; i<10000;i++){  
              
        }  
          
        String result = "我是B-- 接收到反馈意见,并已采纳,非常感谢";  
        /**
         * 把耗时结果返回回调接口
         * 我打你大嘴巴子
         */
        callBack.message(result);   
    }  
}

好了代码基本就是以上这些

测试代码

package org.blueskytoolkit.source.callback;

public class Test {

	  public static void main(String[] args) {
		  B b = new B();  
		   
	      A a = new A(b);  
	       
	      /**
	       * 异步调用b中的方法
	       */
	      a.askQuestion("我是A -- 我在给B反馈意见");
	}
}


嗯~~现在应该懂了吧,刚开始学的时候也是蒙了  什么鬼回调接口,其实用生活中的一些现象解释就很容易懂了

希望能帮助到你们


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

一个经典例子让你彻彻底底理解java回调机制

以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中...
  • xiaanming
  • xiaanming
  • 2013-03-21 23:43
  • 260635

java之模块学习-接口回调机制详解

阅读目录 一、前言二、回调的含义和用途三、Java实现接口回调 四、Android中的接口回调五、参考资料 一、前言 最近在看android fragment与Activity进行数据传递的部分...
  • llayjun
  • llayjun
  • 2016-01-04 10:06
  • 5485

深入浅出: Java回调机制(异步)

Writer      :李强强 什么是回调?今天傻傻地截了张图问了下,然后被陈大牛回答道“就一个回调…”。此时千万个草泥马飞奔而过(逃 哈哈,看着源码,享受着这种回调在代码上的作用,真是美哉。不...
  • wanglha
  • wanglha
  • 2016-05-12 13:02
  • 2017

Java回调机制以及使用HibernateCallBack()接口的好处

最近在做项目有太多的关于框架的
  • hyhy2203390
  • hyhy2203390
  • 2014-07-15 23:28
  • 1558

java接口回调机制

所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,看了人家说比较经典的回调方式:* Cla...
  • qq_24448923
  • qq_24448923
  • 2016-12-08 14:58
  • 117

一句话总结Java的接口回调机制

接口回调机制
  • wolinghuanyun
  • wolinghuanyun
  • 2016-09-14 18:33
  • 269

Android —JAVA接口回调机制解析

很多人都搞不懂什么是JAVA的接口回调,我在写这篇文章的前两天也搞不懂,找了好多资料,好多例子,但是依然很容易搞混了,最后,自己琢磨着画了张图,才渐渐明了了起来。不多说,先上图 这是我自己画的关...
  • Runing_Programmer
  • Runing_Programmer
  • 2016-02-22 17:28
  • 477

Java 接口回调机制

日常开发中接口回调机制无处不在,刚开开始用时却总是晕晕乎乎,网上也有很多相关的文章介绍,但总是没有看得太明白,今天特意花时间来总结一下 一、什么是接口回调 在应用开发中,接口回调机制是一种常用...
  • QDJdeveloper
  • QDJdeveloper
  • 2017-05-26 21:05
  • 1404

java的接口回调机制详解

原文地址:http://www.open-open.com/lib/view/open1461482321288.html 序言 最近学习java,接触到了回调机制...
  • Ivory_wiki
  • Ivory_wiki
  • 2016-07-19 16:02
  • 520

Java接口回调机制详解

一、前言 最近在看android fragment与Activity进行数据传递的部分,看到了接口回调的内容,今天来总结一下。 二、回调的含义和用途 1、什么是回调? ...
  • benpaobagzb
  • benpaobagzb
  • 2016-02-25 12:06
  • 300
    个人资料
    • 访问:176175次
    • 积分:2591
    • 等级:
    • 排名:第16206名
    • 原创:94篇
    • 转载:37篇
    • 译文:0篇
    • 评论:50条
    最新评论