Rxjava(Subject)-ReplaySubject--demo

ReplaySubject会发射所有来自原始Observable的数据给观察者,无论它们是何时订阅的。也 有其它版本的ReplaySubject,在重放缓存增长到一定大小的时候或过了一段时间后会丢弃旧 的数据(原始Observable发射的)。

如果你把ReplaySubject当作一个观察者使用,注意不要从多个线程中调用它的onNext方法 (包括其它的on系列方法),这可能导致同时(非顺序)调用,这会违反Observable协议, 给Subject的结果增加了不确定性。


demo

 ReplaySubject<Integer> subject = ReplaySubject.create();
        System.out.println("******1*******");
        subject.onNext(1);
        System.out.println("******2*******");
        subject.subscribe(new Action1<Integer>() {
            @Override
            public void call(Integer integer) {
                System.out.println("-----" + integer);
            }
        }, new Action1<Throwable>() {
            @Override
            public void call(Throwable throwable) {
                System.out.println("onError");
            }
        }, new Action0() {
            @Override
            public void call() {
                System.out.println("onComplete");
            }
        });
        System.out.println("******3*******");
        subject.onNext(2);
        System.out.println("******4*******");
        subject.onNext(3);
        System.out.println("******5*******");
        subject.subscribe(new Action1<Integer>() {
            @Override
            public void call(Integer integer) {
                System.out.println("Subscriber2:" + integer);
            }
        });
        System.out.println("******6*******");
        subject.onNext(4);
        System.out.println("******7*******");
        subject.onCompleted();
输出

******1*******
******2*******
-----1
******3*******
-----2
******4*******
-----3
******5*******
Subscriber2:1
Subscriber2:2
Subscriber2:3
******6*******
-----4
Subscriber2:4
******7*******
onComplete

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值