本文實例為大家分享了Android RxJava創(chuàng)建操作符Timer的具體代碼,供大家參考,具體內(nèi)容如下
之前有寫過Android實現(xiàn)倒計時之使用CountDownTimer,除了CountDownTimer,開發(fā)中我們也會用到handler,例如
mHandler.sendEmptyMessageDelayed(1, 10*1000); private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); Log.e("流程", "10秒時間已到"); } };現(xiàn)在結(jié)合RxJava來的Observable.timer操作符,既可以延遲執(zhí)行一段邏輯,也可以間隔執(zhí)行一段邏輯
首先添加類庫
// RxAndroidcompile 'io.reactivex:rxandroid:1.2.1'// RxJavacompile 'io.reactivex:rxjava:1.2.4'
(1)Timer 延遲10秒執(zhí)行:
private void timer() { Observable.timer(10000, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1<Long>() { @Override public void call(Long aLong) { Log.e("流程", "10秒倒計時已結(jié)束"); } }); }(2)Timer 間隔1秒執(zhí)行:
private Subscription subscribe; private void timer() { subscribe= Observable.timer(1000,1000,TimeUnit.MILLISECONDS).subscribe(new Subscriber<Long>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Long aLong) { Log.e(TAG, "------>along:"+aLong+" time:"+ SystemClock.elapsedRealtime()); } }); }記得要取消訂閱
private void stop() { if (subscribe != null && !subscribe.isUnsubscribed()) { subscribe.unsubscribe(); } }以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點
疑難解答
圖片精選