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

监听与回调的区别

监听 优于 回调

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

将代码后面 的 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 @ 2022-08-18 00:04  kuaiquxie  阅读(191)  评论(0)    收藏  举报