EventBus,android eventbus有什么作用

1,android eventbus有什么作用进行数据的传递,其实与其导入一个这么大的地三方框架,还不如使用接口来的轻便相当于handler 有时候会非常方便 。**eventbus**是一个android端优化的publish/subscribe消息总线,简化了应用程序内各组件间、组件与后台线程间的通信 。比如请求网络,等网络返回时通过handler或broadcast通知ui,两个fragment之间需要通过listener通信,这些需求都可以通过**eventbus**实现 。
2,RxJava和EventBus的区别EventBus是一个发布 / 订阅的事件总线 。简单点说,就是两人约定好怎么通信 , 一人发布消息,另外一个约定好的人立马接收到发的消息 。Rx:函数响应式编程 ,响应式代码的基本组成部分是Observables和Subscribers(事实上Observer才是最小的构建块,但实践中使用最多的是Subscriber,因为Subscriber才是和Observables的对应的 。) 。Observable发送消息,而Subscriber则用于消费消息 。主要区别是 , rx里面当建立起订阅关系时 , 你可以用操作符做任何处理(比如转换数据,更改数据等等),而且他能处理异步的操作 。eventbus 就相当于广播,发送了,总能接收到,他在发送后是不能做任何的数据改变,如果要改变,又要重新post一次 。【EventBus,android eventbus有什么作用】
3,eventbus30与2有什么改动3与2主要区别在代码使用简化和性能更快上 。详细如下:EventBus 2.x 必须定义以onEvent开头的几个方法,代码中语境比较突兀,且有可能会导致拼写错误,例如数据同步事件EventBus3.0 函数名字不再受到权限,而且可以在一个函数中体现出在哪个线程执行,并且可指定接收事件的优先级EventBus 2.x 注册方式也比较繁琐 。EventBus3.0 注册方式只有一个EventBus 2.x 是采用反射的方式对整个注册的类的所有方法进行扫描来完成注册,当然会有性能上的影响 。EventBus3.0中EventBus提供了EventBusAnnotationProcessor注解处理器来在编译期通过读取@Subscribe()注解并解析、处理其中所包含的信息,然后生成java类来保存所有订阅者关于订阅的信息 , 这样就比在运行时使用反射来获得这些订阅者的信息速度要快
4 , android eventbus怎么找到是谁发布的事件1、EventBus2、让自己的项目依赖EventBus3、自定义一个事件(不需要继承任何类),通常我比较喜欢定义一个Message类4、定义回调函数 , 相当于观察者模式中的on***Listener函数,在EventBus中可以定义四种类型的回调函数:a、onEvent它和ThreadModel中的PostThread对应,这个也是默认的类型,当使用这种类型时 , 回调函数和发起事件的函数会在同一个线程中执行b、onEventMainThread,当使用这种类型时,回调函数会在主线程中执行 , 这个在Android中非常有用,因为在Android中禁止在子线程中修改UIc、onEventBackgroundThread,当使用这种类型时,如果事件发起函数在主线程中执行,那么回调函数另启动一个子线程,如果事件发起函数在子线程执行,那么回调函数就在这个子线程执行 。d、onEventBusAsync,当使用这种类型时,不管事件发起函数在哪里执行,都会另起一个线程去执行回调 。

    推荐阅读