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做个图表示:
0 0
- Android原理——回调机制
- Android消息机制浅析——原理探究
- Android 插件化原理解析——插件加载机制
- android基础——handler机制的原理
- Android 插件化原理解析——插件加载机制
- Android多进程IPC机制——binder原理探索
- Android 插件化原理解析——插件加载机制
- Android 插件化原理解析——插件加载机制
- Android消息机制—— Handler实现原理深度解析
- Android消息机制原理剖析—Handler篇
- Android消息机制的原理剖析—闭环总结
- Android消息机制的原理剖析—闭环总结
- Android handler机制原理
- 【Android】消息机制原理
- Android Handler机制原理
- android handler机制原理
- Android Binder机制原理
- Android Binder机制原理
- 到底谁才是真正的隐形战友——开源软件和OpenSSL的真实故事
- 两个日期的时间差
- OSX平台下跨平台编译Go程序(交叉编译)
- iOS Programming 学习笔记 - 04 UITableView编辑模式
- 配置 vsftpd 出现:500 OOPS:cannot change directory
- Android原理——回调机制
- 20条Linux命令面试问答
- java数组去重
- snmp table开发总结
- 如何用js得到当前页面的url信息方法(JS获取当前网址信息)
- 基本控件:UIAlertView
- system verilog example
- grep和find的参数疑云: 左手shell通配符,右手正则表达式
- LINUX FTP安装与配置