Android - EventBus消息总线

一、简介

EventBus是一个Android端优化的pubish/subscribe消息总线,简化了应用程序内各组件之间,组件与后台线程间的通信。
比如请求网络,等网络返回时Handler或BroadCast通知UI,两个Fragment之间需要通过Listener通信,这些需求都可以通过EventBus实现。

二、Github

`https://github.com/greenrobot/EventBus`

三、使用步骤

1.添加jar包到libs文件夹下
2.注册
EventBus.getDefault().register(this)
3.解注册(防止内存泄露)
EventBus.getDefault().unregister(this)
4.构造发送消息类
5.发布消息
EventBus.getDefault().post(new MessageEvent("hahaha","12345"))
6.接收消息
ThreadMode.MAIN : 
表示这个方法在主线程中执行
ThreadMode.BACKGROUND : 
表示该方法在后台执行,不能并发处理
ThreadMode.ASYNC:
也表示在后台执行,可以异步并发处理
ThreadMode.POSTING:
表示该方法和消息发送发在同一个线程执行(发送发和接收方都在同一个线程处理,如:发送发在主线程,接收方也在主线程)

四、粘性事件

注释:
之前的使用方法都是需要先注册(register)再post,才能接收到事件;
如果使用postSticky发送事件,那么可以不需要先注册,也能接收到事件。

1. 构造发送信息类
2. 发布消息EventBus.getDefault().postSticky(new StickyEvent("我是粘性事件"));
1. 接收消息
1. 注册 EventBus.getDefault().register(CActivity.this);
1. 解注册

五、例子

  1. 主线程发送消息
  2. 发送粘性事件

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