Android原理——回調機制

來源:互聯網
上載者:User

標籤:介面   回調   

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()

Android原理——回調機制

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.