private Disposable mDisposable;
private void getCode() {
Observable.interval(1, TimeUnit.SECONDS).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.take(CODE_TIME).subscribe(new Observer<Long>() {
@Override
public void onSubscribe(Disposable d) {
mDisposable = d;
codeView.setClickable(false);
codeView.setText(CODE_TIME + "s");
// 请求验证码
mPresenter.getCode(phoneNumer);
}
@Override
public void onNext(Long aLong) {
codeView.setClickable(false);
codeView.setRightText(CODE_TIME - aLong - 1 + "s");
}
@Override
public void onError(Throwable e) {
getMsgCodeFailed();
}
@Override
public void onComplete() {
getMsgCodeFailed();
}
});
}
// 验证码获取失败,清楚倒计时,重新可点击
public void getMsgCodeFailed() {
//停止继续发送
if (mDisposable != null)
mDisposable.dispose();
codeView.setClickable(true);
codeView.setText(获取验证码"");
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mDisposable != null)
mDisposable.dispose();
}
Rx验证码倒计时
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 之前一个项目在做手机注册登录时,有一个特殊的需求,就是发送验证码,按钮进入倒计时后,退出页面(pop),重新进入还...
- 首先倒计时用到 Timer 1.导入头文件 2.创建StatefulWidget"CountDownButton"...
- 做一朵白莲花吧,在物欲横流的社会底层静静发育,不沾染一点灰尘,慢慢伸出理想的枝干,穿越尔虞我诈的茂密荷叶,...
- 原文地址:http://www.oschina.net/code/snippet_2001568_48311特别说...