您好,登錄后才能下訂單哦!
本文實例為大家分享了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í)行一段邏輯
首先添加類庫
// RxAndroid compile 'io.reactivex:rxandroid:1.2.1' // RxJava compile '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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。