1. 程式人生 > >Android輪詢器,RxJava Interval;

Android輪詢器,RxJava Interval;

基於RxJava實現輪詢器,配合Retrofit處理網路請求輪詢很好用,其它的一些輪詢也都可以使用像Bannre圖之類的;

implementation 'io.reactivex.rxjava2:rxjava:2.2.2'
 private Disposable subscribe;
      //開始輪詢
    public void start(View view) {
        //interval對應引數 :首次執行延時時間 、 每次輪詢間隔時間 、 時間型別
        subscribe = Observable.interval(0,1, TimeUnit.SECONDS)
                .subscribeOn(Schedulers.io())
                .subscribe(new Consumer<Long>() {
                    @Override
                    public void accept(Long aLong) throws Exception {
                        Log.i("ccb", "accept: " + aLong);
                    }
                });
        // 有限制次數的輪詢器
//        Observable.intervalRange(0,10,0,1,TimeUnit.SECONDS)
//                .subscribe(new Consumer<Long>() {
//                    @Override
//                    public void accept(Long aLong) throws Exception {
//                        Log.i("ccb", "accept: "+aLong);
//                    }
//                });
    }
       //結束輪詢
    public void shop(View view) {
        //停止輪詢,銷燬這個Subscribe;
        if (!subscribe.isDisposed())  subscribe.dispose();
    }

如圖,在輪詢到第10次時結束了輪詢;