AndroidEventBus

事件总线框架
授权协议 Apache
开发语言 Java
所属分类 手机/移动开发、 手机开发包
软件类型 开源软件
地区 国产
投 递 者 盖和洽
操作系统 Android
开源组织
适用人群 未知
 软件概览

这是一个Android平台的事件总线框架, 它简化了Activity、Fragment、Service等组件之间的交互,很大程度上降低了它们之间的耦合,使得我们的代码更加简洁,耦合性更低,提升我们的代码质量。

在往下看之前,你可以考虑这么一个场景,两个Fragment之间的通信你会怎么实现? 按照Android官方给的建议的解决方法如下: Communicating with the Activity,思路就是Activity实现某个接口,然后在Fragment-A关联上Activity之后将Activity强转为接口类型,然后在某个时刻Fragment中回调这个接口,然后再从Activity中调用Fragment-B中方法。这个过程是不是有点复杂呢? 如果你也这么觉得,那也就是你继续看下去的理由了。

  • EventBus除了可以发送普通事件,还可以支持发送粘性事件,就是先发送事件之后再订阅也能收到该事件,类似于粘性广播,第三篇我们就来解析一下黏性事件的原理。 Android 轻量级线程间通信EventBus Android EventBus保姆级源码解析(一)注册方法register Android EventBus保姆级源码解析(二)发送事件post Android EventBus保姆级源码解

  • 记得上次写EventBus还是在上次(一年前,哈哈),转眼间又是一年了,发现对于EventBus的源码细节有点模糊,挖个坑捋捋EventBus的源码 由于项目中使用且当前最新版本源码变化不大,本文贴出的源码基于EventBus3.0.0,关于EventBus的用法可以移步我之前的文章: Android 轻量级线程间通信EventBus Android EventBus保姆级源码解析(一)注册方法r

  • EventBus的使用非常简单,主要分为3个步骤: 定义事件。 订阅事件。 发布事件。 第一步,定义事件。事件可以是任意普通的Java对象,没有任何特殊的要求。例如: public class MessageEvent{ privateString message; public MessageEvent(String message){ this.message = message; } pub

  • 一、AndroidEventBus。 二、問題出現情形。 AndroidEventBus在Fragment中注冊,由其他地方向Fragment中post事件。 三、問題出現原因。 由其他地方向Fragment post事件的時候,Fragment還未初始化,也即AndroidEventBus在此Fragment中還未注冊,所以收不到事件。 四、問題解決辦法。 1.在程序中想辦法先初始化此Fragm

  • 今天遇到了一个问题,一进入app EventBus 的订阅者就要获取消息,但是今天 EventBus发布事件之后回调方法无响应,订阅者并没有得到消息。但是在这之前是可以的,我没有动代码怎么就收不到消息了?我又测了几遍发现有时候可以有时候不可以。 接收不到消息一般是因为 1.没有注册 2.接收消息的方法不是public 3.发送的参数或接收的参数有一个写错了导致参数不一致 4.同一类型的粘性事件。

  • 简介 普通事件:通过post()方法发出的普通事件,会被已经注册的订阅者接收到,若订阅者是在消息发送之后才注册,那么是不会接收到该事件的 粘性事件:而粘性事件是可以被事件发出之后才注册的订阅者接收到,也可以在事件发出之后通过主动查询获取事件内容。粘性事件实现原理其实是把最近的事件缓存到内存中,之后注册的订阅者还可以查询出来 比如在AActivity中发送一个粘性事件Event,然后打开BActiv

  • EventBus EventBus是一种用于Android的事件发布-订阅总线。它简化了应用程序内各个组件之间进行通信的复杂度 https://github.com/greenrobot/EventBus 接收方 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bu

  • EventBus EventBus是一个Android事件发布/订阅框架,通过解耦发布者和订阅者简化Android事件传递,这里的事件可以理解为消息。事件传递既可以用于Android四大组件间通讯,也可以用于异步线程和主线程间通讯等。 ​ 传统的事件传递方式包括:Handler、BroadcastReceiver、Interface回调,相比之下EventBus的有点是代码简洁,使用简单,并将事件

  •        碰到了EventBus发送的事件接收不到的情况,调试后发现是已经被注销的问题。        首先注册和注销应该在向Activity生命周期中相对应的位置,因为Activity生命周期就是相对应的调用的,如onCreate和onDestory,onStart和onStop,onResume和onPause,如果调用到了onStop,下次出现就会从onStart开始。所以在注册后要在其

  • greenrobot的EventBus的不同 greenrobot的EventBus是一个非常流行的开源库,但是它在使用体验上并不友好,例如它的订阅函数必须以onEvent开头,并且如果需要指定该函数运行的线程则又要根据规则将函数名加上执行线程的模式名,这么说很难理解,比如我要将某个事件的接收函数执行在主线程,那么函数名必须为onEventMainThread。那如果我一个订阅者中有两个参数名相同

  • EventBus.getDefault()是通过单例模式来获取一个默认实例,EventBus允许我们创建EventBus实例,我个人觉得自己创建的EventBus基本要保持全局,所以我自己单独弄一个类使用单例模式来创建和获取EventBus public class EventBusBase { private static EventBus eventBus; public s

  • 简单的提示一下,当我们接触eventbus的目的,就是为了减少一些复杂的接口回调,使它们解耦或者组件间的通信,简单高效的对一下组件的通信和广播的优化,从而更清晰管理自己的项目需求,简单记录一下: 1.添加依赖: implementation 'org.greenrobot:eventbus:3.1.1' 2.这里简单的了解一下eventbus怎么去使用。 第一步(注册事件接收对象,最后接收

  • 示例代码 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.act

  • 1.添加依赖 implementation 'org.greenrobot:eventbus:3.0.0' 2.新建一个发送消息的实体类MessageEvent public class MessageEvent { private String message; public MessageEvent(String message) { this.messa

  • 1、引入依赖 implementation 'org.greenrobot:eventbus:3.1.1' 2、定义一个事件的封装对象(登录成功发出通知) public class LoginEvent { //消息类型可以传递多种数据 public final String message; public static LoginEvent getInstance(S

  • 前一篇文章我们分析了订阅事件的方法register,这篇我们继续淦发送事件的方法post Android 轻量级线程间通信EventBus Android EventBus保姆级源码解析(一)注册方法register Android EventBus保姆级源码解析(二)发送事件post Android EventBus保姆级源码解析(三)黏性事件原理 总结 按照惯例,先上总结(太长不看版): 获取

 相关资料
  • 让我们跳进 API 获取事件总线 你获取到事件总线的引用,如下所示: EventBus eb = vertx.eventBus(); 还有每个 Vert.x 实例事件总线的单个实例。 注册处理程序 这个最简单的方法来注册一个处理程序用consumer。下面是一个示例: EventBus eb = vertx.eventBus(); eb.consumer("news.uk.sport", mess

  • 注:本节未经校验,如有问题欢迎提issue 最初设想是为了提供一种向多个actor群发消息的方法,之后EventBus被一般化为一组实现一个简单接口的可组合的特质: /** * Attempts to register the subscriber to the specified Classifier * @return true if successful and false if not

  • 背景 JDK中通过Observer接口和Observable类实现观察者模式, Observer对象是观察者,Observable对象是被观察者. 实现一个简单的观察者模式有以下几步: 创建被观察者, 继承自java.util.Observable类 创建观察者, 实现java.util.Observer接口 在观察者中实现void update(java.util.Observable obse

  • event bus是Vert.x 的中枢神经系统 。 通过Vert.x实例使用eventBus方法得到单一的event bus实例。 事件总线允许您的应用程序相互沟通,不论何种语言,他们写的以及他们是否在同一个 Vert.x 实例,或在一个不同的 Vert.x 实例的不同部分。 它甚至可以弥合,允许客户端 JavaScript 运行在浏览器上相同的事件总线进行通信。 事件总线构成了一个分布式对等消

  • 6.6 ABP表现层 - 事件总线 6.6.6.1 简介 Pub/Sub 事件模型被广泛的应用在客户端。ABP包含了一个 简单的全局事件总线 用来注册事件并且触发事件。 6.6.6.2 注册事件 你可以使用 abp.event.on 来 注册 一个 全局事件 。示例如下: abp.event.on('itemAddedToBasket', function (item) { console

  • 我在CQRS/ES设计中有一个计时案例。为了便于讨论,让我们以Microsoft关于这个主题的示例会议管理为基础(https://msdn.microsoft.com/en-us/library/jj554200.aspx)。 假设在第1分钟创建会议(最大座位数为20)。 在第4分钟,事件到达order mgmt上下文,因此创建了一个座位可用性。 在第7分钟,用户下了一个订单(通过订单管理),购买