Android 回调函数理解

        假设有A、B两个类,A类需要调用B类的方法来得到期待的结果并执行相关操作,但又不想耗时等待,此时A类可以使用回调函数来实时获取B类的计算结果并执行相关操作。

        实现回调功能一般需要三部分代码组成,调用者A类,被调用者B类与调用接口C。假设B类中有b1( ),b2( )函数,b1( )的功能为为传入接口实例,b2( )为耗时函数,初始化时另开线程执行,并有返回结果。接口C中有c1( str )回调函数。对于接口C的c1( str )方法,A类重写了c1( str )方法实现了具体功能(如打印str值),B类调用了c1( str )方法(具体功能未知)。

        现在我们从程序运行的流程来理解回调流程,A类中实例化B类对象ob,ob调用b1( )方法,将接口C实例化对象(重写c1( )方法)传入b1( )方法中,即B ob = new B( ); ob.b1(new C( ) { c1( str ) {打印str值} } );

        因为B类实例化时会得到A类传入的C实例化对象oc,所以B类中所有执行到的oc.c1( str )方法都会变成A类重写的c1( str )方法,功能为“打印str值”。

        因此,在B类实例初始化,执行完b2( )后,再执行oc.c1( str ),即可实现“A类实时获取B类的计算结果并执行相关操作”的功能。

        总结:回调函数除了上述情景用到,它的统一接口,具体功能具体实现,让代码逻辑更加集中,容易理解。

       

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值