RxBus的使用

Rxjava目前已经很火了,如果你尚未了解,可以查看rxjava详情。RxBus并不是一个库,而是一种模式,用过EventBus的都知道采用了观察者模式。如果我们在使用rxjava了,并且减少库的依赖,那么我们可以用RxBus去代替EventBus。

一、添加RxJava和RxAndroid的依赖:

          compile'io.reactivex:rxandroid:1.1.0

          'compile'io.reactivex:rxjava:1.1.0'

二、新建RxBus类:

rxbus类

1、Subject同时充当了Observer和Observable的角色,Subject是非线程安全的,要避免该问题,需要将 Subject转换为一个SerializedSubject,上述RxBus类中把线程非安全的PublishSubject包装成线程安全的Subject。

2、PublishSubject只会把在订阅发生的时间点之后来自原始Observable的数据发射给观察者。

3、ofType操作符只发射指定类型的数据,其内部就是filter+cast

三、创建你需要发送的事件类:

这里自己定义了一个事件类。

事件处理类

四、发送事件:

这里我是在一个RxBusActivity的一个onCreate()方法中添加了一个按钮,点击该按钮后,发送事件。

发送事件

五、接收事件:

这里我们在另外一个MainActivity接收事件。在MainActivity定义了一个TextView用于显示数据。

接收事件

注:rxSbscription是Sbscription的对象,我们这里把RxBus.getInstance().toObserverable(StudentEvent.class)赋值给rxSbscription以方便生命周期结束时取消订阅事件

六、取消订阅。

在这里一定要取消订阅,否认容易造成内存泄漏问题。

取消订阅


菜鸟一枚:如有不对还望指导。参考:rxbus使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • EventBus介绍: Rx:函数响应式编程,EventBus:事件总线 。EventBus 功能类似handle...
    3Q竹林阅读 1,515评论 0 1
  • RxBus的核心功能是基于Rxjava的,在RxJava中有个Subject类,它继承Observable类,同时...
    Angelicas阅读 7,769评论 1 8
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,746评论 25 709
  • 前一阶段,组内做技术分享,我给大家分享了RxJava的使用。在分享的时候,这次分享也是我对RxJava一个快速学习...
    wenju_song阅读 1,937评论 4 9
  • 机器人有灵魂吗? 大卫有,那个被妈妈输入指令的小男孩,有了爱的机器人,注定孤独一生。 我觉得,这个人物是有原型的,...
    涤心十五阅读 188评论 0 0