Android原理——回调机制

来源:互联网 发布:利他林代购淘宝 编辑:程序博客网 时间:2024/06/06 19:59

Android回调机制

回调函数可以把调用者与被调用者分开,调用者不关心谁是被调用者,调用者只需知道具有特定原型和限制条件的被调函数。

1.定义一个回调函数;
2.提供函数实现的一方在初始化的时候,将回调函数接口实例化提交给调用者;
3.当特定的事件或条件发生的时候,调用者使用接口调用回调函数对事件进行处理。

看到过一句写的比较好的描述:A类中调用B类的某个方法C,然后B类中反过来调用A类的方法D,D这个方法就叫回调方法

先引用一个Android源码中经典的例子:

    //接口类, B类实现接口,A类调用接口    public interface OnClickListener {           void onClick(View v);      }
    //相当于A类    public class MainActivity extends Activity implements OnClickListener{      private Button button;     @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);          button = (Button)findViewById(R.id.button1);         // A类实例化接口        button.setOnClickListener(this);      }    @Override      public void onClick(View v) {        // 回调函数    }}
// 相当于B类public class View implements Drawable.Callback, KeyEvent.Callback, AccessibilityEventSource {      // 接口实例    protected OnClickListener mOnClickListener;      // 接口实例化    public void setOnClickListener(OnClickListener l) {          if (!isClickable()) {              setClickable(true);          }          mOnClickListener = l;      }      public boolean performClick() {          if (mOnClickListener != null) {               //B类调用A类的实现方法              mOnClickListener.onClick(this);              return true;          }          return false;      }  }  

上面的例子写的很清楚,这里我用markdown做个图表示:

Created with Raphaël 2.1.2A类A类B类B类setCallback(this)implements CallbackonCallback()interface Callback{}Callback callbackonCallback()
0 0
原创粉丝点击