package com.doumee.lib_coremodel.util; import android.os.CountDownTimer; import androidx.databinding.ObservableBoolean; import androidx.databinding.ObservableInt; public class TimeCount extends CountDownTimer { public final ObservableInt time=new ObservableInt(0); public final ObservableBoolean finish=new ObservableBoolean(true); public static interface CallBack{ void onTick(long sec); void onFinish(); } private CallBack callBack; /** * @param millisInFuture 总时间 * @param countDownInterval 时间间隔 */ public TimeCount(long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInterval); time.set((int) (millisInFuture/1000)); finish.set(true); } public TimeCount(long millisInFuture, long countDownInterval,CallBack callBack) { super(millisInFuture, countDownInterval); time.set((int) (millisInFuture/1000)); finish.set(true); this.callBack = callBack; } @Override public void onTick(long millisUntilFinished) { time.set((int) (millisUntilFinished/1000)); if(callBack!=null){ callBack.onTick(time.get()); } if(time.get()>0&&finish.get()){ finish.set(false); if(callBack!=null){ callBack.onFinish(); } } } @Override public void onFinish() { finish.set(true); if(callBack!=null){ callBack.onFinish(); } } }