currentTime = System.currentTimeMillis()/1000;
terminal = Long.valueOf(detailData.getDeadline_timestamp()) -currentTime;
if(subscription.isUnsubscribed() && terminal > 0)
subscription = Observable.interval(0,1, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Long>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Long aLong) {
if(!isVisiable && subscription != null) //判断fragmen是否销毁来确定是否取消订阅
subscription.unsubscribe();
day = "0"+String.valueOf(((terminal - aLong)/ DateTimeUtil.ONE_DAY));
hour = "0"+String.valueOf((((terminal -aLong) % DateTimeUtil.ONE_DAY)/DateTimeUtil.ONE_HOUR));
minute = "0"+String.valueOf((((terminal -aLong) % DateTimeUtil.ONE_HOUR)/DateTimeUtil.ONE_MINUTE));
second = "0"+String.valueOf((terminal - aLong)%DateTimeUtil.ONE_MINUTE);
mDay.setText(day.substring(day.length()-2,day.length()));
mHour.setText(hour.substring(hour.length()-2,hour.length()));
mMinute.setText(minute.substring(minute.length()-2,minute.length()));
mSecond.setText(second.substring(second.length()-2,second.length()));
}
});
android Rxjava interval 操作符实现 倒计时功能
最新推荐文章于 2023-07-11 10:06:32 发布