輕松實現(xiàn)Rxjava定時器功能
使用RxJava實現(xiàn)定時器功能可以通過兩種方式來實現(xiàn),具體實現(xiàn)如下:
一、使用 timer 操作符
private Disposable mDisposable; /** * 啟動定時器 */ public void startTime() { Observable.timer(10, TimeUnit.SECONDS) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<Long>() { @Override public void onSubscribe(Disposable d) { mDisposable = d; } @Override public void onNext(Long value) { //Log.d("Timer",""+value); } @Override public void onError(Throwable e) { } @Override public void onComplete() { // TODO:2017/12/1 closeTimer(); } }); } /** * 關(guān)閉定時器 */ public void closeTimer(){ if (mDisposable != null) { mDisposable.dispose(); } }
二、使用使用 interval 和 take 操作符
在1.x 中 timer 可以執(zhí)行間隔邏輯,在2.x中此功能已過時,交給了 interval 操作符,當然只使用 interval 還不能實現(xiàn)定時器功能,必須再結(jié)合take 操作符。具體代碼如下:
private Disposable mDisposable; /** * 啟動定時器 */ public void startTime() { int count_time = 10; //總時間 Observable.interval(0, 1, TimeUnit.SECONDS) .take(count_time+1)//設(shè)置總共發(fā)送的次數(shù) .map(new Function<Long, Long>() { @Override public Long apply(Long aLong) throws Exception { //aLong從0開始 return count_time-aLong; } }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<Long>() { @Override public void onSubscribe(Disposable d) { mDisposable = d; } @Override public void onNext(Long value) { //Log.d("Timer",""+value); } @Override public void onError(Throwable e) { } @Override public void onComplete() { // TODO:2017/12/1 closeTimer(); } }); } /** * 關(guān)閉定時器 */ public void closeTimer(){ if (mDisposable != null) { mDisposable.dispose(); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android 網(wǎng)絡(luò)請求框架Volley實例詳解
這篇文章主要介紹了Android 網(wǎng)絡(luò)請求框架Volley實例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06React Native 實現(xiàn)熱更新并自動簽名打包功能
這篇文章主要介紹了React Native 實現(xiàn)熱更新并自動簽名打包,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04Android點亮屏幕或屏幕解鎖和鎖定以及其他相關(guān)權(quán)限實現(xiàn)代碼
本文將帶你實現(xiàn)Android屏幕解鎖和鎖定;Android屏幕常亮/點亮以及其他相關(guān)權(quán)限,感興趣的朋友可以參考下,希望本文對你有所幫助2013-01-01Android 安全加密:消息摘要Message Digest詳解
本文主要介紹Android安全加密消息摘要Message Digest,這里整理了詳細的資料,并說明如何使用Message Digest 和使用注意事項,有需要的小伙伴可以參考下2016-09-09Android開發(fā)中TextView 實現(xiàn)右上角跟隨文本動態(tài)追加圓形紅點
這篇文章主要介紹了android textview 右上角跟隨文本動態(tài)追加圓形紅點的實例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-11-11