Android中常用的定时器,使用rxjava后发现rxjava也可以使用定时,rxjava的定时更加的灵活。
定时操作
Subscription subscription = Observable.interval(0, 10, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.unsubscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Long>() {
@Override
public void call(Long aLong) {
//定时执行的任务
}
}, new Action1<Throwable>() {
@Override
public void call(Throwable throwable) {
}
});
//取消定时器
if (subscription != null && !subscription.isUnsubscribed()) {
subscription.unsubscribe();
}
interval中的参数分别是,多久之后执行,执行间隔,时间类型。
延时操作
Observable.timer(10, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.unsubscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Long>() {
@Override
public void call(Long aLong) {
}
});
延时操作只会执行一次,timer参数分别是时间,时间类型