事件总线 EventBus 3.0 简单运用
来源:互联网 发布:淘宝睡衣货到付款 编辑:程序博客网 时间:2024/06/06 02:54
EventBus(事件总线,3.0),类似广播机制具体步骤有四个
一、 注册事件总线
一般在onCreate()函数里面注册
EventBus.getDefault().register(this);
二、 产生事件
String json="Hello Second";EventBus.getDefault().post(json);
三、 消费事件
@Subscribe(threadMode = ThreadMode.MAIN ,priority = 1,sticky = true)public void helloEventBus(String msg){ tv.setText(msg);}
消费事件有如下步骤:1、订阅(subscribe)事件,只要有事件产生,马上能消费。用标签来注解订阅(@Subscribe)2、必须有一个消费的函数(例如上面helloEventBus()),不然会报错,名字随便起,建议见名知意。3、指定消费线程,有四个类型,如下 1)、ThreadMode.MAIN(在主线程消费,能更新UI)。 2)、ThreadMode.POSTING(posting顾名思义,在哪个线程产生的事件,就在哪个线程消费时间)。 3)、ThreadMode.BACKGROUND(background,在后台消费,如果当前线程是主线程就另起一个新的子线 程在后台消费,如果当前线程是子线程,就直接在子线程消费) 4)、ThreadMode.ASYNC(异步消费,无论在子线程还是主线程产生事件,都新开一个子线程消费)3、sticky(滞留),这个属性默认为FALSE,见名知意,这个只要就是为了能让产生事件滞留一段时间再进行消 费,不过它的产生事件就要用postSticky()函数来产生4、还可以设置优先运行的级别priority,值越小优先级越低,默认为0。
四、 取消注册事件总线
一般在onDestroy()函数里面取消注册
EventBus.getDefault().unregister(this);
Tip:EventBus的事件总线的消费事件是根据接收的参数类型进行判断是否消费的。例如假如产生事件传递的参数是String类型,那么消费事件的函数的接收参数也必须是String类型,不管有多少个消费事件的函数,只要是String类型的消息发过来,所有的消费函数都会进行消费。
0 0
- 事件总线 EventBus 3.0 简单运用
- EventBus 3.0 事件总线
- EventBus事件总线库
- Guava - EventBus(事件总线)
- EventBus--事件总线
- Eventbus 事件总线
- EventBus 事件总线
- 事件总线---EventBus使用
- EventBus事件总线学习
- 事件总线之EventBus
- [Android] EventBus事件总线
- EventBus 事件总线
- EventBus事件总线
- Android 事件总线EventBus
- EventBus(事件总线)
- 事件总线:EventBus
- 【事件总线】解析EventBus
- Android EventBus事件总线
- 排序算法七:选择排序之堆排序
- 浅谈CSRF攻击方式
- 人月神话之五 胸有成竹和削足适履
- log4j.properties 详解与配置步骤
- SSM集成Quartz定时任务 重复执行问题
- 事件总线 EventBus 3.0 简单运用
- Spring Cloud构建微服务架构(三)断路器
- 使用shell脚本辅助系统维护RHCE-Day12
- Spring Cloud构建微服务架构(四)分布式配置中心
- 数据查询
- Cppcheck(静态的C\C++代码分析的工具)
- Spring Cloud构建微服务架构(五)服务网关
- Android设计模式之工厂模式
- 整理笔记2