安卓实现监听与回调的区别

作者:@kuaiquxie
作者的github:https://github.com/bitebita
本文为作者原创,如需转载,请注明出处:https://www.cnblogs.com/dzwj/p/16597312.html


监听与回调的区别

监听 优于 回调

写了 监听,又写了 回调,会先执行 监听,然后在执行 会回调,

将代码后面 的 return 改为 true 之后,不在执行后面的,return false 会执行后面的 回调

 

回调机制与监听机制的区别

      监听一个事件的发生,有事件源、事件、事件的监听者,事件源和事件的监听者是分开的,需要设置一个监听器上去

      回调机制,事件源和事件的监听者是绑定在一起的,比如监听一个按钮的触摸事件,写一个类去继承Button,然后重写触摸事件的方法,当触摸按钮的时候就回去回调这么一个方法,也就是说,按钮本身就已经实现了监听的回调,它已经不需要我们去给它额外的设置监听器了。它本身可以内部回调。

 

基于回调的事件传播

      1.重写控件一些内部的方法,当控件被用户做一些操作和回调方法相关动作的时候,那么系统会去回调我们重写的相关动作的方法。

public class MyButton extends AppCompatButton {
   public MyButton(Context context) {
       super(context);
  }

   public MyButton(Context context, AttributeSet attrs) {
       super(context, attrs);
  }

   public MyButton(Context context, AttributeSet attrs, int defStyleAttr) {
       super(context, attrs, defStyleAttr);
  }

   @Override
   public boolean onTouchEvent(MotionEvent event) {
       switch (event.getAction()){
           case MotionEvent.ACTION_DOWN:
               Log.d("info","---onTouchEvent---");
               break;
      }
       return false;
  }
}

 

 

2.回调机制先从控件本身开始回调,执行完成之后再去执行Activity的回调,事件是向外传播的。

      3.监听优先于回调,如果给控件设置了监听器,则优先执行监听器,然后再去执行回调。

posted @   kuaiquxie  阅读(156)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示