0%

Android开发 事件总线框架otto

前面介绍过另一款事件总线,叫EventBus,从官网说明来看,比今天的这个otto要强大很多,比如支持异步,以及主线程,后台线程分发事件等。但因为项目里同事用了otto,所以做下了解。 与BventBus基于事件类型和方法名来分发事件不同,Otto使用注解和事件类型。 主要实现代码:

Bus bus=new Bus();
//注册
bus.register(this);
//发送事件
bus.post(new TestEvent("asdfa"));
//接收事件,加Subscribe注解,方法名可以任意,但参数要与post的一致
@Subscribe 
public void onEvent(TestEvent event) {
     textview.setText(event.getText());
}
//解除注册
bus.unregister(this);

另外,Bus类最好封装一下实现单例,因为只有同一个实例注册、发送,才能正常接收。