1、在app开发中,Splash界面中往往有广告播放倒计时,除了用定时器实现之外,我们还可以用RXJava优雅的实现它。
//范围0~4,间隔时间1s
disposable = Observable.intervalRange(0, 4, 0, 1, TimeUnit.SECONDS)
.observeOn(AndroidSchedulers.mainThread())
.doOnNext(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
splashTime.setText((4 - aLong) + "s | 跳过");//更新UI
}
})
.doOnComplete(new Action() {
@Override
public void run() throws Exception {
goMainActivity();//关闭当前页面,跳转主页面
}
})
.subscribe();
2、Splash页面延迟2秒,再跳转到主页面
disposable = Observable.timer(2,TimeUnit.SECONDS)//2s后发射
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
goMainActivity();//关闭当前页面,跳转主页面
}
});
另外记得在页面销毁时取消事件的订阅
if (CommonUtils.isNotEmpty(disposable)) {
disposable.dispose();
}