Android 消息订阅(EventBus)

简要说明

Android端优化的publish/subscribe消息总线,
简化了应用程序内组件间、组件和后台线程间的通信。

B站教程:尚硅谷Android视频教程《EventBus》(2018.04)

Github地址:greenrobot/EventBus

使用步骤

Android 消息订阅(EventBus)_第1张图片

接收消息

ThreadMode 含义
MAIN 在主线程中执行
BACKGROUND 在后台执行,不能并发处理
ASYNC 在后台执行,可以并发处理
POSTING 方法和消息发送方在同一线程中执行

Android 消息订阅(EventBus)_第2张图片

发送消息

粘性事件

发送方法

EventBus.getDefault().postSticky(msg)

特点:延迟注册

应用:有时需要把一个Event发送到一个还没有初始化的页面,即尚未订阅事件,就需要用到粘性事件。

// 非粘性事件
@Subscribe(threadMode = ThreadMode.MAIN)
fun subscribeEvent(object: Object) { ... }
// 粘性事件
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
fun subscribeEvent(object: Object) { ... }

注意事项❗❗❗

  1. 接收消息的方法上方一定要加@Subscribe,默认是非粘性事件。
  2. 接收事件的参数,必须为引用数据类型,不可为基本数据类型。

你可能感兴趣的:(android,android,java,apache)