java方法计时器,懒汉式,转换为00:00:00格式

计时器工具:

public class TimingUtil {

    private static TimingUtil mTimingUtil;

    private Timer timer;

    private TimingCallback mTimingCallback;

    private int mHeartbeat = 0;

    private TimingTask mTimerTask;

    private TimingUtil() {}

    //初始化

    public static TimingUtil init() {

        if (mTimingUtil == null) {

            mTimingUtil = new TimingUtil();

        }

        return mTimingUtil;

    }

    //开始

    public void startTiming() {

        if (mTimerTask != null) {

            return;

        }

        mTimerTask = new TimingTask();

        timer = new Timer();

        timer.schedule(mTimerTask, 0, 1000);

    }

    public void setListen(TimingCallback timingCallback) {

        mTimingCallback = timingCallback;

        mTimingCallback.heartbeat(intToDateString(mHeartbeat));

    }

    //暂停

    public void suspend() {

        mTimerTask.cancel();

        mTimerTask = null;

    }

    //停止清空

    public void cancel() {

        timer.cancel();

        if (mTimerTask!=null) {

            mTimerTask.cancel();

            mTimerTask = null;

        }

        mHeartbeat = 0;

    }

    private class TimingTask extends TimerTask {

        @Override

        public void run() {

            if (mTimingCallback==null){

                return;

            }

            mTimingCallback.heartbeat(intToDateString(mHeartbeat++));

        }

    }

    private String intToDateString(int value) {

        int hour = value / 3600;

        int min = value / 60 % 60;

        int second = value % 60;

        String hourString;

        String minString;

        String secondString;

        if (hour < 10) {

            hourString = "0" + hour;

        } else {

            hourString = hour + "";

        }

        if (min < 10) {

            minString = "0" + min;

        } else {

            minString = min + "";

        }

        if (second < 10) {

            secondString = "0" + second;

        } else {

            secondString = second + "";

        }

        return hourString + ":" + minString + ":" + secondString;

    }

}


接口:

public interfaceTimingCallback{

public voidheartbeat(Stringtiming);

}

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,197评论 19赞 139
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 13,086评论 0赞 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,272评论 18赞 399
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,513评论 0赞 16
  • 从小到大,我们不知道要与各种各样的人交往多少次,而在交往的过程中我们都少不了自我介绍。也可以这样说,我们一辈子,总...
    下半辈子_阅读 659评论 2赞 1

友情链接更多精彩内容