欢迎使用CSDN-markdown编辑器

来源:互联网 发布:网络金融诈骗判多少年 编辑:程序博客网 时间:2024/06/15 19:51

EventBus简单使用


EventBus的好处小编就不在这里多说,网上多的是,请大家自行浏览

EventBus的使用非常简单。大致流程如下:

订阅事件 —> 发送事件 —> 处理事件 —> 取消事件

在这里小编就不一一赘述了,说的再多不如直接上代码;

使用post()发送事件(传递一个对象)

MainActivity代码

MainActivit做为一个订阅器 需要注册(订阅),取消。当然作为订阅者最重要的还是接收处理信息(消费事件)

Main2Activity代码

Main2Activity作为一个发送事件的Activity 主要进行发送事件,供事件订阅者接收

注意这时候就有坑了

没有在栈中的Activity是无法通过post()传递数据的(例如直接打开第一个Activity,然后传递给尚未打开的第二个Activity,就不能传递)

那么如何解决这个问题呢,废话不说,直接上代码

postSticky发送事件(在这里postSticky()就不进行详细讲解了,可以度娘)

这里写图片描述

在这里我们将开始的post() 替换为postSticky()

在接收(消费)事件时 更改如下

这里写图片描述

这样在Main2Activity未加入到栈中的时候,MainActivit发送的事件在Main2Activity中便可以接收到了