Android开发倒计时工具类

Android开发倒计时工具类

倒计时功能很常见,分享个倒计时工具类,用的是RxJava3。

直接上代码:

  /**
     * @param second
     * @param nextObserver desc:倒计时
     *                           create by cong on 2018/5/25 11:46
     */
    public static Disposable dealCountDownS(long second, Consumer<Long> nextObserver, Consumer<Throwable> errorObserver, Action completeObserver ) {
        return Observable
                .interval(1, TimeUnit.SECONDS, AndroidSchedulers.mainThread())
                .take(second)
                .subscribe(nextObserver,errorObserver,completeObserver);
    }

使用示例:

subscription = TimeUtils.dealCountDownS(Constant.CODE_COUNTDOWN_TIME, new Consumer<Long>() {

            @Override
            public void accept(Long aLong) throws Exception {
                //每隔一秒
                if (null != tvGetCode) {
                    tvGetCode.setText((TextUtils.concat(String.valueOf(Math.abs(aLong - Constant.CODE_COUNTDOWN_TIME)), "s")).toString());
                }
            }
        }, new Consumer<Throwable>() {
            @Override
            public void accept(Throwable throwable) throws Exception {
                if (null != tvGetCode) {
                    tvGetCode.setText(mContext.getString(R.string.get_code));
                }
                isStartCountDown = false;
            }
        }, new Action() {
            @Override
            public void run() throws Exception {
                if (null != tvGetCode) {
                    tvGetCode.setText(R.string.get_code);
                }
                isStartCountDown = false;
            }
        });

代码应该你们都看到懂。

有Android或者鸿蒙开发bug或者需求的可以私信我,我每天都看私信的

你可能感兴趣的:(android开发日记,android,Android教程,Android案例,Android倒计时,Android开发倒计时)