Rxjava实现数据的定时发送

926 阅读1分钟

private void initRxjavaData(){

    Observable.interval(1,1, TimeUnit.SECONDS)
            .takeWhile(new Predicate<Long>() {
                @Override
                public boolean test(Long aLong) throws Exception {
                    return mTestData != 3;
                }
            })
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Observer<Long>() {
                @Override
                public void onSubscribe(Disposable d) {

                }

                @Override
                public void onNext(Long aLong) {
                    Log.d(TAG,"data:"+aLong);
                    mTestData++;
                    if(mTestData == 3){
                        Log.d(TAG,"out");
                    }
                }

                @Override
                public void onError(Throwable e) {

                }

                @Override
                public void onComplete() {
                    Log.d(TAG,"onComplete:");
                    mTestData = 0;
                }
            });
}