RxJava创建之骚操作

Timer

个人理解:订阅后经过一定时间返回一个可观察对象
RxJava创建之骚操作_第1张图片
骚操作:

/**
     * 延迟执行
     * @param delayTime 延迟时间(单位秒)
     * @return  Observable
     */
   public static Observable delayDo(int delayTime){
        return Observable.timer(delayTime,TimeUnit.SECONDS,AndroidSchedulers.mainThread());
   }

Interval

个人理解:自订阅开始返回一个自0开始无限递增的整数序列
RxJava创建之骚操作_第2张图片
骚操作:

/**
 * 执行倒计时操作
 * @param time 倒计时(单位秒)
 * @return 剩下多少秒的Observable
 */
public static Observable countDown(int time) {
    if (time < 0) time = 0;
    final int countTime = time;
    //0延迟,间隔1秒
    return Observable.interval(0, 1, TimeUnit.SECONDS)//按的时间间隔发射一个无限递增的整数序列。//0,1,2,3...
            .take(countTime + 1)
            .subscribeOn(AndroidSchedulers.mainThread())
            .observeOn(AndroidSchedulers.mainThread())
            .map(new Func1() {//变换
                @Override
                public Integer call(Long increaseTime) {
                    return countTime - increaseTime.intValue();
                }
            });
}

你可能感兴趣的:(RxJava)