Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android原理——回調機制

Android原理——回調機制

編輯:關於Android編程

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()
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved