EventBus学习

EventBus是android 下高效的发布/订阅事件总线机制,能够代替传统的Intent,Handler,BroadCast 或者Fragment,Activity,Service,线程之间传递数据,是一种发布订阅设计模式(观察者模式)。android

如何使用呢?设计模式

1. 在要接收的Activity注册订阅者,EventBus.getDefault().register(this), 发送的方式是EventBus.getDefault().post();post

2. 在要接收的Activity里面使用下面的方法中的一个或者多个接收事件:this

public void onEvent(Message msgEvent); // 该事件在哪一个线程发出的,onEvent就会在这个线程中运行,发布和接收在同一个线程中。注意不能执行耗时操做,不然容易致使事件分发延迟。线程

public void onEventMainThread(MesssageEvent mevent);设计

不管事件在哪一个线程中发出来,都会在UI线程中执行onEventMainThread,这个能够用来更新UI,也不能执行耗时操做事件

public void onEventBackgroud:get

若是事件是在UI线程中发布的,会建立子线程执行,若是就是在子线程发布,就在该子线程中执行it

public void onEventAsyncevent

不管是在哪一个线程中发布,都会建立子线程去执行

 

3. 发布后,谁来执行呢?

这里就是根据发布的参数和订阅者的参数去匹配的,只要参数同样,就去执行。

相关文章
相关标签/搜索