RxJava学习
//方式一:
Observable.interval(0L, 1L, TimeUnit.SECONDS, AndroidSchedulers.mainThread()).subscribe(new Observer<Long>() {
@Override
public void onSubscribe(Disposable disposable) {
Log.e(TAG, "开始采用subscribe连接");
mDisposable = disposable;
}
@Override
public void onNext(Long aLong) {
Log.e(TAG, "接收到了事件" + aLong);
long offset = 10 - aLong;
mTextview.setText(offset + "S");
mTextview.setEnabled(false);
if (offset <= 0) {
mDisposable.dispose();
mTextview.setText("重新发送验证码");
mTextview.setEnabled(true);
}
}
@Override
public void onError(Throwable throwable) {
Log.e(TAG, "对Error事件作出响应");
}
@Override
public void onComplete() {
Log.e(TAG, "对Complete事件作出响应");
}
});
//方式二:
mDisposable = Observable.interval(0L, 1L, TimeUnit.SECONDS, AndroidSchedulers.mainThread())
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
long offset = 10 - aLong;
if (offset <= 0) {
//取消
mDisposable.dispose();
mTextview.setText("重新发送验证码");
mTextview.setEnabled(true);
}else {
mTextview.setEnabled(false);
mTextview.setText(String.valueOf(offset) + "秒");
}
}
});