| 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(); | 
|         } | 
|     } | 
| } |