Android中常用的定时器,使用rxjava后发现rxjava也可以使用定时,rxjava的定时更加的灵活。

定时操作

Subscription subscription = Observable.interval(0, 10, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.unsubscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Long>() {
                @Override
                public void call(Long aLong) {
					//定时执行的任务        
                }
            }, new Action1<Throwable>() {
                @Override
                public void call(Throwable throwable) {

                }
            });


//取消定时器
 if (subscription != null && !subscription.isUnsubscribed()) {
            subscription.unsubscribe();
}

interval中的参数分别是,多久之后执行,执行间隔,时间类型。

延时操作

 Observable.timer(10, TimeUnit.SECONDS)
                .subscribeOn(Schedulers.io())
                .unsubscribeOn(AndroidSchedulers.mainThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Action1<Long>() {
                    @Override
                    public void call(Long aLong) {
                       
                    }
                });

延时操作只会执行一次,timer参数分别是时间,时间类型