文章导航
RxJava基础使用
1.发送验证码
应用场景:当用户点击发送验证码后,在倒计时的时间内是不可以重新点击发送验证码的,倒计时结束后,发送验证码的按钮重新恢复点击,这里举例子为60s的倒计时
public void verify(View view) {
final long count = 60;//倒计时时间
final Button button = (Button) view;//当前按钮
Observable.intervalRange(0, count, 0, 1, TimeUnit.SECONDS)//定时器
.map(new Function<Long, Long>() {
@Override
public Long apply(@NonNull Long aLong) throws Exception {
return count - aLong;//将值转换下,当前值:3,2,1,0
}
})
.observeOn(AndroidSchedulers.mainThread())//主线程更新UI
.doOnSubscribe(new Consumer<Disposable>() {
@Override
public void accept(@NonNull Disposable disposable) throws Exception {
//监听订阅时,将按钮设置为不可点击
button.setEnabled(false);
button.setTextColor(Color.BLACK);
}
})
.subscribe(new Observer<Long>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Long aLong) {
//设置倒计时文本
button.setText("剩余" + aLong + "秒");
}
@Override
public