[Android进阶]Android中使用的观察者模式
来源:互联网 发布:淘宝的车秒贷怎么算的 编辑:程序博客网 时间:2024/05/22 16:43
Android中使用观察者模式的代码有很多,比如最近很火的EventBus、RxAndroid等,都使用了观察者模式,原因是观察者模式观察者和被观察者之间是抽象耦合,应对业务变化,可以增强系统灵活性,可扩展性。
我们很熟悉的BroadcastReceiver和ListView同样用到了观察者模式,当然ListView肯定用到了适配器模式。我们关心一下这两个是如何使用观察者模式的:
首先在Android中,我们往ListView添加数据后,都会调用Adapter的notifyDataChanged()方法,其中使用了观察者模式。
- 当ListView的数据发生变化时,调用Adapter的notifyDataSetChanged函数,这个函数又会调用DataSetObservable的notifyChanged函数,这个函数会调用所有观察者(AdapterDataSetObserver)的onChanged方法,在onChanged函数中又会调用ListView重新布局的函数使得ListView刷新界面。
Android中应用程序发送广播的过程:
- 通过sendBroadcast把一个广播通过Binder发送给ActivityManagerService,ActivityManagerService根据这个广播的Action类型找到相应的广播接收器,然后把这个广播放进自己的消息队列中,就完成第一阶段对这个广播的异步分发。
- ActivityManagerService在消息循环中处理这个广播,并通过Binder机制把这个广播分发给注册的ReceiverDispatcher,ReceiverDispatcher把这个广播放进MainActivity所在线程的消息队列中,就完成第二阶段对这个广播的异步分发:
- ReceiverDispatcher的内部类Args在MainActivity所在的线程消息循环中处理这个广播,最终是将这个广播分发给所注册的BroadcastReceiver实例的onReceive函数进行处理:
0 1
- [Android进阶]Android中使用的观察者模式
- Android中观察者设计模式的使用
- android中对观察者模式的使用,Adapter中的观察者
- android 中观察者的使用
- 在Android中观察者模式的简单使用
- Android中观察者模式
- 观察者模式在android中使用
- 观察者模式在Android中使用浅析
- Android中观察者模式的升入理解
- android中AdapterView的观察者模式
- Android中观察者模式的简单应用
- android中关于观察者模式的demo
- android开发之观察者模式的使用
- Android——观察者模式的使用
- Android中内容观察者的使用---- ContentObserver
- Android中内容观察者的使用---- ContentObserver
- Android 进阶之路:常见设计模式之观察者模式
- android中常用的设计模式 --- 观察者模式
- 算法导论课后习题部分解答
- android 中动态创建控件
- linux常用命令--管道命令
- 支付宝
- SQLSERVER2008 R2的端口设置
- [Android进阶]Android中使用的观察者模式
- [安卓开发]快递查询demo|Json解析|条形码扫描|物流布局|历史记录
- 番茄工作法
- 以极地号为例认识科考船上的各种设备
- 2016April Python学习笔记(pandas&echarts)
- 关于hibernate中的错误:Exception in thread "main" org.hibernate.hql.internal.ast.QuerySyntaxException: tb_e
- web测试
- 跟着郝斌学数据结构(05)——栈
- 安装Windows和Ubuntu双系统