《Android进阶之光》--事件总线
No1:
EventBus三要素:
1)Event:事件
2)Subscriber:事件订阅者
3)Publisher:事件发布者
No2:
EventBus的4种ThreadMode(线程模型):
1)POSTING(默认):该事件是在哪个线程发布出来的,事件处理函数就会在哪个线程中运行
2)MAIN:事件的处理会在UI线程中执行
3)BACKGROUND:在新线程或者发布的子线程中执行,禁止进行UI更新操作
4)ASYNC:在新建的子线程中执行,禁止进行UI更新操作
No3:
EventBus源码解析
EventBus.getDefault()->(单例模式)
new EventBus()->
EventBus(EventBusBuilder)->(建造者模式)
register->
SubscriberMethodFinder.findSubscriberMethods->findUsingInfo->getSubscriberInfo->findUsingReflectionInSingleClass->
subscribe->
...
No4:
otto使用
compile 'com.squareup:otto:1.3.8'
public class BusData{public String message;public BusData(String message){this.message = message;}public String getMessage(){return message;}public void setMessage(String message){this.message = message;} }
public class OttoBus extends Bus{private volatile static OttoBus bus;private OttoBus(){}public static OttoBus getInstance(){if(bus == null){synchronized(OttoBus.class){if(bus==null){bus = new OttoBus();}}}return bus;} }
Bus bus = OttoBus.getInstance(); bus.register(this); bus.unregister(this);@Subscribe public void setContent(BusData data){tv_message.setText(data.getMessage()); }OttoBus.getInstance().post(new BusData("刘望舒的博客更新了"));
No5:
Otto主要类的功能
1)Produce、Subscribe:发布者和订阅者注解类
2)Bus:事件总线类,用来注册和取消注册,维护发布-订阅模型,并处理事件调度分发
3)HandlerFinder、AnnotatedHandlerFinder:用来查找发布者和订阅者
4)EventProducer、EventHandler:分别封装发布者和订阅者的数据结构
转载于:https://www.cnblogs.com/anni-qianqian/p/8510442.html
《Android进阶之光》--事件总线相关推荐
- 《android进阶之光》——事件总线(上)
今日阅读:<android进阶之光>的事件总线部分,整理如下 事件总线知识点: 1.EventBus:就是事件,可以是任意对象 2.Subscriber:事件的订阅者 3.Publishe ...
- Android进阶三部曲 第一部《Android进阶之光》已出版(内含勘误)
独立博客版本请点击这里 勘误帖请点击这里 源码地址:https://github.com/henrymorgen/android-advanced-light 进阶三部曲第二部:http://liuw ...
- 进阶三部曲第一部《Android进阶之光》第2版已出版
本文首发于微信公众号「刘望舒」 其实<Android进阶之光>第二版已经在2021年4月就出版了,但是今天才发现,我去,没在CSDN发文,今天补上~~ 以下是正文 其实不打算出<An ...
- 《Android进阶之光》Horizontal 读书笔记
<Android进阶之光>Horizontal 读书笔记 public class HorizontalView extends ViewGroup {private int lastIn ...
- 《Android进阶之光》续作内容简介
<Android进阶之光>续作的书名现在还没有定,目前已经完稿,预计会在9月出版.本书基于Android8.0,理念和<Android开发艺术探索>相近,是将源码和应用开发相结 ...
- 《android进阶之光》——事件总线(下)
今天看了这本书关于事件总线的剩余部分,主要讲的是otto. otto与EventBus用法差不多,不同的地方是: 1.otto不是单例模式的,每次使用都要创建一个实例,建议使用的时候用单例模式包起来 ...
- Android进阶之光 读书笔记
第一章, Android 5.6.7新特性 1.RecycleView的自定义分割线 public class DividerItemDecoration extends RecycleView.It ...
- Android开源框架——事件总线otto
开源官网:https://github.com/square/otto guide:http://square.github.io/otto/ otto 框架就是事件分发总线. 1.0 为什么要使用事 ...
- Android开源框架——事件总线 EventBus3.0讲解
开源项目地址 官网:https://github.com/greenrobot/EventBus 介绍 EventBus主要使用了观察者模式设计方案.主要替代Intent.Handler. Broad ...
最新文章
- 将二进制流转换为图片
- SQL SERVER 2008不能修改表的解决方法(增加字段、修改字段名)(未解决)
- 最小拍有纹波系统仿真实验matlab代码,最小拍控制器设计.doc
- 使用G1后报错-CircuitBreakingException: [parent] Data too large
- go语言一个包含nil指针的接口不是nil接口的理解
- Spring中的@ImportResource
- Seasonal-ARIMA模型
- JSP九大内置对象以及作用
- linux中tailf命令详解,linux tailf命令详解
- 短视频剪辑入门技巧,简单却重要
- STM32 FFT 音频处理
- VsCode模仿简单百度网页(html)
- nginx -s reopen 命令小解
- tp6 thinkswoole 使用极光curl请求时报错
- win10的系统mysql服务器地址,win10的系统mysql服务器地址
- 【20保研】热忱欢迎全国2020届优秀本科毕业生免试攻读重庆大学研究生
- cursor的所有样式
- 【单片机毕业设计】【mcuclub-cl-015】基于单片机的地铁到站检测的设计
- HA高可用集群与RHCS集群套件
- android调用系统拍照、相册
热门文章
- 你真的会用Gson吗?Gson使用指南(三)
- http://127.0.0.1/thinkphp5/public/index/teacher/delete/id/1.html 这样的URL下,页面收不到get参数...
- js new Date()
- vmware克隆linux虚拟机网卡无法上网的解决办法
- inetd -- internet超级服务器
- WPF Unleashed Chapter 2:XAML Demystified 翻译(第二部分)
- Repeater 双向排序
- MATLAB学习笔记(十七)
- 网页HTML5制作flex布局骰子,CSS3的Flexbox骰子布局的实现及分析
- oracle exp调过坏块,无备份坏块处理(跳过方式)