您的位置:首页 > 其它

eventbus指定接收者

2016-07-28 23:50 113 查看
http://greenrobot.org/eventbus/documentation/priorities-and-event-cancellation/

思路:设置订阅者的优先级,优先级高的接收事件处理,取消事件,事件无法继续往下传递,达到指定接收者的目的。


1.Subscriber Priorities

You may change the order of event delivery by providing a priority to the subscriber during registration.

@Subscribe(priority = 1); //设置优先级

public void onEvent(MessageEvent event) {



}

Within the same delivery thread (ThreadMode), higher priority subscribers will receive events before others with a lower priority. 

2.Cancelling event delivery

You may cancel the event delivery process by calling cancelEventDelivery(Object event) from a subscriber’s event handling method. Any further event delivery will be cancelled: subsequent subscribers won’t receive the event.

// Called in the same thread (default)

@Subscribe

public void onEvent(MessageEvent event){

// Process the event



EventBus.getDefault().cancelEventDelivery(event) ;
//取消事件传递

}

Events are usually cancelled by higher priority subscribers. Cancelling is restricted to event handling methods running in posting thread ThreadMode.PostThread.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: