先來看下效果圖:
2.png
1.png
//首先導入rxjava包
compile 'io.reactivex:rxjava:1.1.6'
compile 'io.reactivex:rxandroid:1.2.1'
//代碼
int count_time = 60; //總時間
Observable.interval(0, 1, TimeUnit.SECONDS) //0延遲 每隔1秒觸發(fā)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())//操作UI主要在UI線程
.take(count_time + 1) //設置循環(huán)次數
.map(aLong -> count_time - aLong) //從60-1
.doOnSubscribe(() -> idTvCodeAcRegister.setClickable(false)) //執(zhí)行過程中按鍵為不可點擊狀態(tài)
.subscribe(new Observer<Long>() {
@Override
public void onCompleted() {//循環(huán)結束調用此方法
LogUtil.show("onCompleted");
idTvCodeAcRegister.setClickable(true);
idTvCodeAcRegister.setText(R.string.get_code);
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onNext(Long aLong) {//每隔一秒執(zhí)行
LogUtil.show("onNext: " + aLong);
idTvCodeAcRegister.setText("重獲(" + aLong + ")");
}
});
633600411(Android技術交流群)
//注意:代碼中:->格式為lambda表達式盗尸,有興趣學習更多相關知識請加下方qq群
633600411(Android技術交流群)