RxJava/RxAndroid:ConnectableObservable & replay(long time, TimeUnit unit)

简介: RxJava/RxAndroid:ConnectableObservable & replay(long time, TimeUnit unit)import android.

RxJava/RxAndroid:ConnectableObservable & replay(long time, TimeUnit unit)

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

import java.util.concurrent.TimeUnit;

import io.reactivex.Observable;
import io.reactivex.observables.ConnectableObservable;
import io.reactivex.observers.DisposableObserver;

public class MainActivity extends AppCompatActivity {
    private String TAG = "输出";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ConnectableObservable<Long> mConnectableObservable = Observable
                .interval(1, TimeUnit.SECONDS)
                .replay(5, TimeUnit.SECONDS);

        mConnectableObservable
                .subscribe(new DisposableObserver<Long>() {
                    @Override
                    public void onNext(Long along) {
                        Log.d(TAG, "onNext1:" + along);
                    }

                    @Override
                    public void onComplete() {
                        Log.d(TAG, "onComplete1");
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.d(TAG, e.toString());
                    }
                });

        mConnectableObservable.connect();

        mConnectableObservable
                .delaySubscription(5, TimeUnit.SECONDS)
                .subscribe(new DisposableObserver<Long>() {
                    @Override
                    public void onNext(Long along) {
                        Log.d(TAG, "onNext2:" + along);
                    }

                    @Override
                    public void onComplete() {
                        Log.d(TAG, "onComplete2");
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.d(TAG, e.toString());
                    }
                });
    }
}


output:

01-26 16:11:58.031 19725-19748/zhangphil.book D/输出: onNext1:0
01-26 16:11:59.030 19725-19748/zhangphil.book D/输出: onNext1:1
01-26 16:12:00.030 19725-19748/zhangphil.book D/输出: onNext1:2
01-26 16:12:01.030 19725-19748/zhangphil.book D/输出: onNext1:3
01-26 16:12:02.030 19725-19748/zhangphil.book D/输出: onNext1:4
01-26 16:12:02.032 19725-19749/zhangphil.book D/输出: onNext2:0
01-26 16:12:02.032 19725-19749/zhangphil.book D/输出: onNext2:1
01-26 16:12:02.032 19725-19749/zhangphil.book D/输出: onNext2:2
01-26 16:12:02.032 19725-19749/zhangphil.book D/输出: onNext2:3
01-26 16:12:02.032 19725-19749/zhangphil.book D/输出: onNext2:4
01-26 16:12:03.030 19725-19748/zhangphil.book D/输出: onNext1:5
01-26 16:12:03.030 19725-19748/zhangphil.book D/输出: onNext2:5
01-26 16:12:04.030 19725-19748/zhangphil.book D/输出: onNext1:6
01-26 16:12:04.030 19725-19748/zhangphil.book D/输出: onNext2:6
01-26 16:12:05.030 19725-19748/zhangphil.book D/输出: onNext1:7
01-26 16:12:05.030 19725-19748/zhangphil.book D/输出: onNext2:7
01-26 16:12:06.030 19725-19748/zhangphil.book D/输出: onNext1:8
01-26 16:12:06.030 19725-19748/zhangphil.book D/输出: onNext2:8
01-26 16:12:07.030 19725-19748/zhangphil.book D/输出: onNext1:9
01-26 16:12:07.030 19725-19748/zhangphil.book D/输出: onNext2:9
01-26 16:12:08.030 19725-19748/zhangphil.book D/输出: onNext1:10
01-26 16:12:08.030 19725-19748/zhangphil.book D/输出: onNext2:10
01-26 16:12:09.030 19725-19748/zhangphil.book D/输出: onNext1:11
01-26 16:12:09.031 19725-19748/zhangphil.book D/输出: onNext2:11
01-26 16:12:10.030 19725-19748/zhangphil.book D/输出: onNext1:12
01-26 16:12:10.031 19725-19748/zhangphil.book D/输出: onNext2:12


......


相关文章
|
druid 网络协议 Java
Spring Boot集成Druid异常discard long time none received connection.
Spring Boot集成Druid异常discard long time none received connection.
2762 0
RxJava/RxAndroid:timer(long delay, TimeUnit unit)
RxJava/RxAndroid:timer(long delay, TimeUnit unit) timer起到定时器的作用,本例使用timer延迟3秒执行一个输出任务: package com.
1376 0
RxJava/RxAndroid:ConnectableObservable &amp; replay(int bufferSize, long time, TimeUnit unit)
RxJava/RxAndroid:ConnectableObservable & replay(int bufferSize, long time, TimeUnit unit) import android.
1062 0
|
Java Android开发
RxJava/RxAndroid : buffer(long timespan, TimeUnit unit)
RxJava/RxAndroid : buffer(long timespan, TimeUnit unit) 以timespan个unit时间单位作为缓冲周期,一轮一轮的把数据流中的数据分批发射出去。
1125 0
|
6月前
|
JSON JavaScript 前端开发
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
548 0
|
6月前
|
编译器 C语言
c语言中long的作用类型
c语言中long的作用类型
167 0
|
19天前
|
编译器 C#
c# - 运算符<<不能应用于long和long类型的操作数
在C#中,左移运算符的第二个操作数必须是 `int`类型,因此需要将 `long`类型的位移计数显式转换为 `int`类型。这种转换需要注意数据丢失和负值处理的问题。通过本文的详细说明和示例代码,相信可以帮助你在实际开发中正确使用左移运算符。
27 3
|
18天前
|
编译器 C#
c# - 运算符<<不能应用于long和long类型的操作数
在C#中,左移运算符的第二个操作数必须是 `int`类型,因此需要将 `long`类型的位移计数显式转换为 `int`类型。这种转换需要注意数据丢失和负值处理的问题。通过本文的详细说明和示例代码,相信可以帮助你在实际开发中正确使用左移运算符。
34 1
|
17天前
|
编译器 C#
c# - 运算符<<不能应用于long和long类型的操作数
在C#中,左移运算符的第二个操作数必须是 `int`类型,因此需要将 `long`类型的位移计数显式转换为 `int`类型。这种转换需要注意数据丢失和负值处理的问题。通过本文的详细说明和示例代码,相信可以帮助你在实际开发中正确使用左移运算符。
10 0

热门文章

最新文章