回掉函数

回掉函数理解

所谓的回调,就是程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。

这个要怎么理解呢 一开始我是一头雾水的但是你不能说我一头雾水就拒绝去了解,最后反复读了好几遍终于有所了解了。

这里以Button按钮的点击事件进行说明

这里是Button的设置点击事件方法和点击事件的接口类
public void setOnClickListener(@Nullable OnClickListener l) {
if (!isClickable()) {
setClickable(true);
}
getListenerInfo().mOnClickListener = l;
}

    public interface OnClickListener {
            /**
             * Called when a view has been clicked.
             *
             * @param v The view that was clicked.
             */
            void onClick(View v);
        }

这里是Button按钮事件的实现

 Button btn = (Button)findViewById(R.id.focus);
                btn.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        System.out.println("2333333333");
                    }
                });

首先Button的setOnClickListener可以想象为程序员A写的程序a,你的当前类为B
那么接下来就十分清晰了。
Button(A)写好了setOnClickListener方法并且预留了接口,你(B)用了它(A)的setOnClickListener方法,然后它(A)的setOnClickListener调用你的onClick方法。再结合这一句:
A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,是不是感觉有点想得通了。
也就是我用了你的setOnClickListener方法,然后你用我的实现好的Onclick方法。A调用B,B调用A。

一个通俗的例子:

你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。回答完毕。

店员就是A 你就是B B调用店员(A)通知你的方法并实现了A的打电话方法(传入了电话号码(回调函数)),货物到了,(回掉 事件触发) A调用你实现好了的打电话方法,然后你就去取货物(响应回调事件)

上述店员例子来源链接:
http://www.zhihu.com/question/19801131/answer/13005983

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值