码迷,mamicode.com
首页 > 移动开发 > 详细

Android原理——回调机制

时间:2015-02-11 10:56:33      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:接口   回调   

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原理——回调机制

标签:接口   回调   

原文地址:http://blog.csdn.net/mennoa/article/details/43730647

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!