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) + "秒");
}
}
});