EventBus中的四种订阅函数(接收事件)
- OnEvent: 事件在哪个线程发出,OnEvent就在哪个线程中执行,但是在OnEvent中不能执行耗时操作。
- onEventMainThread: 不管事件在哪个线程发出,onEventMainThread都会在UI线程执行。
- onEvnetBackground: 如果事件从UI线程发出,那么onEvnetBackground会在子线程中执行,如果事件从子线程发出,那么onEvnetBackground就在该子线程执行。
- onEventAsync: 无论事件从哪个线程发出,onEventAsync都会创建新的子线程执行。
在EventBus3.0之前事件处理的方法只能限定于onEvent、onEventMainThread、onEventBackgroundThread和onEventAsync,他们分别代表四种线程模型。而在EventBus3.0之后,事件处理的方法可以随便取名,但是需要添加一个注解@Subscribe,并且要指定线程模型(默认为POSTING)
接收事件:
1.注册过eventbus的activity须实现订阅方法
@Subcrible(threadMode)
public void HandleEvent(EventType event){
….//dosomething
}
2.接收事件方法可以类似重载构造,eventbus会根据参数不同自动调用。
例如:
HandleEvent(EventType event1)
HandleEvent(EventType event1,EventType event2)
HandleEvent(EventType event1,EventType event2,EventType event3)