Handler与CountDownTimer定时器使用场景

1. 概述

有时候在开发中,我们需要定义定时器,而定时器各种各样,自己常用的有两种,第一是每隔5秒执行一次操作,时间无上限;第二是定义一个3分钟定时器,每隔5秒执行一次操作,等3分钟时间到了,就停止操作,针对于这两种定时器,一般都有其各自的应用场景。具体用法如下

2. 代码如下

1>:Handler + Runnable实现每隔5秒执行一次操作,时间无上限:
    @Override
    public void initView() {
        mHandler.postDelayed(heartBeatRunnable, HEART_BEAT_RATE);//开启心跳检测
    }
    private long sendTime = 0L;
    //每隔5秒进行一次对长连接的心跳检测
    private static final long HEART_BEAT_RATE = 5 * 1000;
    // 发送心跳包
    private Handler mHandler = new Handler();
    private Runnable heartBeatRunnable = new Runnable() {
        @Override
        public void run() {
            if (System.currentTimeMillis() - sendTime >= HEART_BEAT_RATE) {
                // 自己需要做的操作写在这里即可
                sendData();
                sendTime = System.currentTimeMillis();
            }
            //每隔一定的时间,对长连接进行一次心跳检测
            mHandler.postDelayed(this, HEART_BEAT_RATE); 
        }
    };
2>:CountDownTimer定义3分钟定时器,实现每隔5秒执行一次操作:
private void countTimerTask() {
        if (countDownTimer == null) {
            // 每隔6000 毫秒执行onTick中的方法一次
            countDownTimer = new CountDownTimer(1000 * 60 * 3, 6000) {
                @Override
                public void onTick(long millisUntilFinished) {
                    String strText = "" + (int) (millisUntilFinished / 1000) + "s 后重发";
                   // 自己需要做的操作写在这里即可
                    sendData();
                }

                // 3分钟定时器执行完毕后,执行此方法
                @Override
                public void onFinish() {

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

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,283评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,105评论 6 13
  • 本文是根据 Quartz定时器官方文档翻译的,只翻译了第1到第10课,如有翻译不精确的地方,请读者指正,互相学习,...
    ChinaXieShuai阅读 12,757评论 1 19
  • 从多伦多开车约一个半小时后到达尼亚加拉大瀑布。关于这联合国评定的世界七大奇迹之一,一句话总结:这是一个本来不太想来...
    姓敬名远阅读 3,315评论 0 0
  • 市面上关于时间管理的书和课程数不胜数,令人眼花缭乱。我想结合《博恩崔西的时间管理课》和古典老师的栏目《超级个体》,...
    羽扇清风阅读 4,312评论 2 8

友情链接更多精彩内容