/**
* 倒计时工具类
*/
public class CountdownUtil {
/* 倒计时的间隔时间 */
private int mIntervalTime;
/* 倒计时的总时间 */
private int mTotalTime;
/* 倒计时是否在运行 */
private boolean isRunning;
/* 系统倒计时类 */
private CountDownTimer mTimer;
/* 倒计时监听器 */
private OnCountdownListener mCountdownListener;
private CountdownUtil() {
super();
this.mIntervalTime = 0;
this.mTotalTime = 0;
this.isRunning = false;
}
public static CountdownUtil newInstance() {
return new CountdownUtil();
}
private void init() {
mTimer = new CountDownTimer(mTotalTime, mIntervalTime) {
@Override
public void onTick(long millisUntilFinished) {
if (mCountdownListener != null) {
mCountdownListener.onRemain(millisUntilFinished);
}
}
@Override
public void onFinish() {
isRunning = false;
if (mCountdownListener != null) {
mCountdownListener.onFinish();
}
}
};
}
/**
* 设置倒计时的间隔时间
*
* @param intervalTime 间隔时间
* @return {@link CountdownUtil}
*/
public CountdownUtil intervalTime(int intervalTime) {
this.mIntervalTime = intervalTime;
return this;
}
/**
* 设置倒计时的总时间
*
* @param totalTime 总时间
* @return {@link CountdownUtil}
*/
public CountdownUtil totalTime(int totalTime) {
this.mTotalTime = totalTime;
return this;
}
/**
* 设置倒计时监听器
*
* @param listener 倒计时监听器
* @return {@link CountdownUtil}
*/
public CountdownUtil callback(OnCountdownListener listener) {
this.mCountdownListener = listener;
return this;
}
/**
* 开始倒计时
*/
public void start() {
if (mTimer == null) init();
mTimer.start();
isRunning = true;
}
/**
* 结束倒计时
*/
public void stop() {
if (mTimer != null) mTimer.cancel();
isRunning = false;
}
/**
* 获取倒计时的间隔时间
*
* @return 间隔时间
*/
public int getIntervalTime() {
return mIntervalTime;
}
/**
* 获取倒计时的总时间
*
* @return 总时间
*/
public int getTotalTime() {
return mTotalTime;
}
/**
* 获取倒计时是否正在进行
*
* @return {@code true}: 正在进行<br>{@code false}: 已经结束
*/
public boolean isRunning() {
return isRunning;
}
/**
* 获取倒计时类
*
* @return {@link CountDownTimer}
*/
public CountDownTimer getTimer() {
return mTimer;
}
/**
* 倒计时监听器
*/
public interface OnCountdownListener {
/**
* 倒计时正在进行时调用的方法
*
* @param millisUntilFinished 剩余的时间(毫秒)
*/
void onRemain(long millisUntilFinished);
/**
* 倒计时结束
*/
void onFinish();
}
}
倒计时工具类工具CountDownTimer
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 说到倒计时,首先了解一下关系。方便你的理解 一天=24小时 =24*60分钟=24*60*60秒=24*60*60...
- 左边是输出台,右边是tableView,点击后modal了一个控制器,停止了计时器 一、主要功能 对于tableV...