当前位置: 首页 > news >正文

8-2.Android 任务之 CountDownTimer 编码模板(开启计时器、取消计时器)

一、CountDownTimer

1、概述
  1. CountDownTimer 是 Android 中一个用于执行定时操作的类

  2. CountDownTimer 主要应用于在指定时间段内完成某项任务,或者每隔一段时间触发某项任务

2、使用步骤
  1. 创建 CountDownTimer:创建 CountDownTimer 就是创建它的匿名子类,并实现它的两个方法
方法说明
onTick(long millisUntilFinished)该方法会在每个间隔时间段结束时被调用
millisUntilFinished 是倒计时剩余时间(毫秒)
onFinish()该方法会在结束时被调用
millisUntilFinished 到达 0 时
  1. 使用 CountDownTimer:使用 CountDownTimer 实例对象的方法
方法说明
start()开启计时器
cancel()取消计时器

二、CountDownTimer 基本使用

1、初体验
package com.my.countdowntimer;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.os.CountDownTimer;
import android.util.Log;public class CountDownTimerTestActivity extends AppCompatActivity {public static final String TAG = CountDownTimerTestActivity.class.getSimpleName();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_count_down_timer_test);// 倒计时 millisInFuture 毫秒,每 countDownInterval 毫秒调用一次CountDownTimer countDownTimer = new CountDownTimer(5000, 1000) {@Overridepublic void onTick(long millisUntilFinished) {Log.i(TAG, "剩余时间:" + millisUntilFinished / 1000 + " 秒");}@Overridepublic void onFinish() {Log.i(TAG, "倒计时结束");}};countDownTimer.start();}
}
  • 输出结果
I/CountDownTimerTestActivity: 剩余时间:3 秒
I/CountDownTimerTestActivity: 剩余时间:2 秒
I/CountDownTimerTestActivity: 剩余时间:1 秒
I/CountDownTimerTestActivity: 剩余时间:0 秒
I/CountDownTimerTestActivity: 倒计时结束
2、取消计时器
package com.my.countdowntimer;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.os.CountDownTimer;
import android.util.Log;public class CountDownTimerCancelActivity extends AppCompatActivity {public static final String TAG = CountDownTimerCancelActivity.class.getSimpleName();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_count_down_timer_cancel);// 倒计时 millisInFuture 毫秒,每 countDownInterval 毫秒调用一次CountDownTimer countDownTimer = new CountDownTimer(5000, 1000) {@Overridepublic void onTick(long millisUntilFinished) {// 在第 3 秒时取消计时器long s = millisUntilFinished / 1000;Log.i(TAG, "剩余时间:" + s + " 秒");if (s == 3) {Log.i(TAG, "取消计时器");cancel();return;}}@Overridepublic void onFinish() {Log.i(TAG, "倒计时结束");}};countDownTimer.start();}
}
  • 输出结果
I/CountDownTimerCancelActivity: 剩余时间:4 秒
I/CountDownTimerCancelActivity: 剩余时间:3 秒
I/CountDownTimerCancelActivity: 取消计时器

相关文章:

8-2.Android 任务之 CountDownTimer 编码模板(开启计时器、取消计时器)

一、CountDownTimer 1、概述 CountDownTimer 是 Android 中一个用于执行定时操作的类 CountDownTimer 主要应用于在指定时间段内完成某项任务,或者每隔一段时间触发某项任务 2、使用步骤 创建 CountDownTimer:创建 CountDownTimer 就是创建它的匿名…...

Servlet的生命周期及用户提交表单页面的实现(实验报告)

一、实验目的、要求 1. 掌握Servlet的定义,即Servlet是运行在服务器端的Java程序,用于扩展服务器的功能。 2. 学习和掌握在开发环境中搭建Servlet应用所需的工具,如Tomcat服务器、IDEA等。 二、实验内容 根据本章所学知识,实验…...

【Router】路由功能之IP过滤(IP Filter)功能(基于端口)介绍及实现

IP过滤(IP Filter) IP Filter是一种通过对网络数据包中的 IP 地址进行分析和筛选,以实现对网络流量的控制和管理的技术。 IP过滤(IP Filter)作用 安全防护 可以阻止来自特定 IP 地址或 IP 地址范围的恶意攻击、非法访问等,增强网络的安全性。 流量管理 根据不同的 IP …...

数据结构_2.2、顺序表插入删除查找

1、线性表的顺序存储表示定义: 线性表:是具有相同数据类型的n (n≥0)个数据元素的有限序列 顺序表:用顺序存储的方式实现线性表 顺序存储:把逻辑上相邻的元素存储在物理 位置上也相邻的存储单元中&#…...

嵌入式C语言自我修养:编译链接

源文件生成可执行文件的过程? 源文件经过预处理、编译、汇编、链接生成一个可执行的目标文件。 编译器驱动程序,包括预处理器、编译器、汇编器和链接器。Linux用户可以调用GCC驱动程序来完成整个编译流程。 使用GCC驱动程序将示例程序从ASCII码源文件转换…...

Mac制作Linux操作系统启动盘

前期准备 一个 Mac 电脑 一个 U 盘(8GB 以上) 下载好 Linux 系统镜像(iso 文件) 具体步骤 挂载 U 盘 解挂 U 盘 写系统镜像到 U 盘 完成 一、挂载 U 盘 首先插入 U 盘,打开终端输入下面的命令查看 U 盘是否已经 m…...

PHP语言发展历程

PHP是一种开源的服务器端脚本语言,主要用于Web开发,最初由Rasmus Lerdorf在1994年创建。PHP的发展历程如下: PHP的起源:1994年,Rasmus Lerdorf创建了PHP的第一个版本,最初是一套用于跟踪他个人简历访问的C…...

Notepad++ 之 AndroidLogger插件

背景 最近一段时间在分析Android log 定位问题,Notepad 之前用的比较少,现在看log觉得确实好用,美中不足的是 看Android log的时候不像 logcat -v color 可以区分不同等级的颜色,于是调研了一下,发现大部分都是使用An…...

开源2+1链动模式AI智能名片O2O商城小程序源码:线下店立体连接的超强助力器

摘要:本文将为您揭示线下店立体连接的重大意义,您知道吗?线上越火,线下就得越深入经营。现代门店可不再只是卖东西的地儿,还得连接KOC呢!咱们来看看门店要做的那些超重要的事儿,还有开源21链动模…...

我为什么决定关闭ChatGPT的记忆功能?

你好,我是三桥君 几个月前,ChatGPT宣布即将推出一项名为“记忆功能”的新特性,英文名叫memory。 这个功能听起来相当吸引人,宣传口号是让GPT更加了解用户,仿佛是要为我们每个人量身打造一个专属的AI助手。 在记忆功…...

如何使用ssm实现中学生课后服务的信息管理与推荐+vue

TOC ssm766中学生课后服务的信息管理与推荐vue 第一章 绪论 1.1 选题背景 目前整个社会发展的速度,严重依赖于互联网,如果没有了互联网的存在,市场可能会一蹶不振,严重影响经济的发展水平,影响人们的生活质量。计算…...

【分别为微服务云原生】9分钟ActiveMQ延时消息队列:定时任务的革命与Quartz的较量

ActiveMQ延时消息队列:定时任务的革命与Quartz的较量 摘要: 在现代的消息驱动架构中,ActiveMQ的延迟消息队列功能为定时任务提供了一种新的解决方案。本文将详细介绍ActiveMQ延迟消息队列的功能、应用场景,并与Quartz定时任务进行…...

泛型编程--模板【C++提升】(特化、类属、参数包的展开、static、模板机制、重载......你想知道的全都有)

更多精彩内容..... 🎉❤️播主の主页✨😘 Stark、-CSDN博客 本文所在专栏: C系列语法知识_Stark、的博客-CSDN博客 其它专栏: 数据结构与算法_Stark、的博客-CSDN博客 C系列项目实战_Stark、的博客-CSDN博客 座右铭:梦…...

安卓使用memtester进行内存压力测试

memteser简介 memtester 是一个用于测试内存可靠性的工具。 它可以对计算机的内存进行压力测试,以检测内存中的错误,例如位翻转、随机存取错误等。memtester 可以在不同的操作系统上运行,并且可以针对不同大小的内存进行测试。 下载源码 m…...

Dave Cheney: Go语言之禅

本篇内容是根据2020年3月份The Zen of Go音频录制内容的整理与翻译, Dave Cheney 讲述了 Go 之禅(编写简单、可读、可维护的 Go 代码的十个工程价值)。是什么让 Go 代码变得优秀?编写 Go 代码时,我们应该牢记哪些指导原则&#x…...

SpringMVC源码-AbstractUrlHandlerMapping处理器映射器将实现Controller接口的方式定义的路径存储进去

DispatcherServlet的initStrategies方法用来初始化SpringMVC的九大内置组件 initStrategies protected void initStrategies(ApplicationContext context) {// 初始化 MultipartResolver:主要用来处理文件上传.如果定义过当前类型的bean对象,那么直接获取&#xff0…...

满填充透明背景二维码生成

前几天项目上线的时候发现一个问题:通过Hutool工具包生成的二维码在内容较少时无法填满(Margin 已设置为 0)给定大小的图片。因此导致前端在显示二维码时样式异常。 从图片中我们可以看到,相同大小的图片,留白内容是不一样的。其中上半部分…...

Python | Leetcode Python题解之第452题用最少数量的箭引爆气球

题目: 题解: class Solution:def findMinArrowShots(self, points: List[List[int]]) -> int:if not points:return 0points.sort(keylambda balloon: balloon[1])pos points[0][1]ans 1for balloon in points:if balloon[0] > pos:pos balloo…...

代码随想录 | Day26 | 二叉树:二叉搜索树中的插入操作删除二叉搜索树中的节点修剪二叉搜索树

代码随想录 | Day26 | 二叉树:二叉搜索树中的插入操作&&删除二叉搜索树中的节点&&修剪二叉搜索树 主要学习内容: 二叉搜索树的插入删除操作 701.二叉搜索树中的插入操作 701. 二叉搜索树中的插入操作 - 力扣(LeetCode&…...

使用Apifox创建接口文档,部署第一个简单的基于Vue+Axios的前端项目

前言 在当今软件开发的过程中,接口文档的创建至关重要,它不仅能够帮助开发人员更好地理解系统架构,还能确保前后端开发的有效协同。Apifox作为一款集API文档管理、接口调试、Mock数据模拟为一体的工具,能够大幅度提高开发效率。在…...

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...