基於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次時結束了輪詢;