輕松實現(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 操作符,當(dāng)然只使用 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-06
React Native 實現(xiàn)熱更新并自動簽名打包功能
這篇文章主要介紹了React Native 實現(xiàn)熱更新并自動簽名打包,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04
Android點亮屏幕或屏幕解鎖和鎖定以及其他相關(guān)權(quán)限實現(xiàn)代碼
本文將帶你實現(xiàn)Android屏幕解鎖和鎖定;Android屏幕常亮/點亮以及其他相關(guān)權(quán)限,感興趣的朋友可以參考下,希望本文對你有所幫助2013-01-01
Android 安全加密:消息摘要Message Digest詳解
本文主要介紹Android安全加密消息摘要Message Digest,這里整理了詳細的資料,并說明如何使用Message Digest 和使用注意事項,有需要的小伙伴可以參考下2016-09-09
Android開發(fā)中TextView 實現(xiàn)右上角跟隨文本動態(tài)追加圓形紅點
這篇文章主要介紹了android textview 右上角跟隨文本動態(tài)追加圓形紅點的實例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-11-11

