Java以及Android回调机制的一些理解

           安卓的View如Button,ImageView都有事件监听,而事件监听就是一个回调函数。回调函数在实际的应用中也是十分的重要。网上也讲过很多回调函数的,我也只是写一写自己的感悟,以及对回调函数的理解。

       首先谈谈什么是回调函数,引用一段话:在Android的学习过程中经常会听到或者见到“回调”这个词,那么什么是回调呢?所谓的回调函数就是:在A类中定义了一个方法,这个方法中用到了一个接口和该接口中的抽象方法,但是抽象方法没有具体的实现,需要B类去实现,B类实现该方法后,它本身不会去调用该方法,而是传递给A类,供A类去调用,这种机制就称为回调。

     为什么要使用回调函数呢,回调函数就是在一个不确定实现的方法用interface或者它的抽象方法留个口子,留给具体调用者(调用前边那个不确定的方法)在调用时提供具体实现来补上那个口子。这这就做到了随时使用,随时实现。此外,Android的监听事件由于不知道具体的实现方法,于是采用回调就是一个很好的方式了,你自己定义点击后的事件监听,想要实现什么功能就可以实现什么功能。

   下面用具体的代码加以说明:

该类相当于是




<span style="font-size:18px;">public class CallbackDemo {


	private String A="123";
	
	public int getA(CallBack callBack){
		//此时调用的是类B的实现的方法;
		System.out.println("time3"+111);
		int b=callBack.getResult(A);//A作为形参
		System.out.println("time1"+333);
		//b应该为24;
		return b+4;
	}
	
	//定义一个接口,相当于一个约定
	//或者说这是一个抽象方法,当你想要实现此方法时,可以具体实现。
	public interface CallBack{
		public int getResult(String result);
	}
}</span>



<span style="font-size:18px;">public class GetA {
	
	private static CallbackDemo cDemo=new CallbackDemo();
	public static void main(String[] args) {
		
		//调用A类的方法,然后A类遇到那个抽象方法时又回调该实现
		int c=cDemo.getA(new CallBack() {
			
			public int getResult(String result) {
				//实现要做什么
				//result就是A的值
				System.out.println("time2"+222);
				int i=Integer.parseInt(result);
			    System.out.println(i);
				return i;			}
		});
	    System.out.println(""+c);
	}
}</span>

首先会调用第一个类的getA()方法,之后遇到抽象方法,会寻找该抽象方法的具体实现,于是就调用第二个类的实现方法getResult(),在之后就是调用getA()后面的未执行完的语句


输出如下所示:


参考文章:

        详细介绍Android中回调函数机制

        Android开发中Java回调机制的应用

        弄明白Android 接口回调机制

        Java/Android中的函数调用&回调函数&自定义回调函数

        



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值