Android 开发 倒计时功能 转载
原文地址:https://www.cnblogs.com/xch-yang/p/7920419.html
Android为我们封装好了一个抽象类CountDownTimer,可以实现计时器功能:

/**
* 倒数计时器
*/
private CountDownTimer timer = new CountDownTimer(15 * 60 * 1000, 1000) {
Android为我们封装好了一个抽象类CountDownTimer,可以实现计时器功能:

/**
* 倒数计时器
*/
private CountDownTimer timer = new CountDownTimer(15 * 60 * 1000, 1000) {
/**
* 固定间隔被调用,就是每隔countDownInterval会回调一次方法onTick
* @param millisUntilFinished
*/
@Override
public void onTick(long millisUntilFinished) {
tv_remaining_time.setText(formatTime(millisUntilFinished));
} /**
* 倒计时完成时被调用
*/
@Override
public void onFinish() {
tv_remaining_time.setText("00:00");
}
}; /**
* 将毫秒转化为 分钟:秒 的格式
*
* @param millisecond 毫秒
* @return
*/
public String formatTime(long millisecond) {
int minute;//分钟
int second;//秒数
minute = (int) ((millisecond / 1000) / 60);
second = (int) ((millisecond / 1000) % 60);
if (minute < 10) {
if (second < 10) {
return "0" + minute + ":" + "0" + second;
} else {
return "0" + minute + ":" + second;
}
}else {
if (second < 10) {
return minute + ":" + "0" + second;
} else {
return minute + ":" + second;
}
}
} /**
* 取消倒计时
*/
public void timerCancel() {
timer.cancel();
} /**
* 开始倒计时
*/
public void timerStart() {
timer.start();
}

构造方法里需要传入两个参数进去:
参数1:倒计时的总时间,单位ms
参数2:倒计时的时间间隔,单位ms
方法:
cancel():取消倒计时
onFinish():当前任务完成的时候回调
onTick(long millisUnitilFinished):当前任务每完成一次倒计时间隔时间时回调
start():开始倒计时

/** * 固定间隔被调用,就是每隔countDownInterval会回调一次方法onTick * @param millisUntilFinished */ @Override public void onTick(long millisUntilFinished) { tv_remaining_time.setText(formatTime(millisUntilFinished)); } /** * 倒计时完成时被调用 */ @Override public void onFinish() { tv_remaining_time.setText("00:00"); } }; /** * 将毫秒转化为 分钟:秒 的格式 * * @param millisecond 毫秒 * @return */ public String formatTime(long millisecond) { int minute;//分钟 int second;//秒数 minute = (int) ((millisecond / 1000) / 60); second = (int) ((millisecond / 1000) % 60); if (minute < 10) { if (second < 10) { return "0" + minute + ":" + "0" + second; } else { return "0" + minute + ":" + second; } }else { if (second < 10) { return minute + ":" + "0" + second; } else { return minute + ":" + second; } } } /** * 取消倒计时 */ public void timerCancel() { timer.cancel(); } /** * 开始倒计时 */ public void timerStart() { timer.start(); }

构造方法里需要传入两个参数进去:
参数1:倒计时的总时间,单位ms
参数2:倒计时的时间间隔,单位ms
方法:
cancel():取消倒计时
onFinish():当前任务完成的时候回调
onTick(long millisUnitilFinished):当前任务每完成一次倒计时间隔时间时回调
start():开始倒计时

Android 开发 倒计时功能 转载的更多相关文章
- Android 关于倒计时功能的实现
关于倒计时的实现,可以说有很多的方法,比较常见的就是Timer+TimerTask+Handler了,或者还可以配合Runnable.例如下面的代码: import java.util.Timer; ...
- Android开发---支付宝功能接口(支付功能)(转载!)
最近在做一个关于购物商城的项目,项目里面付款这块我选的是调用支付宝的接口,因为用的人比较多. 在网上搜索了以下,有很多这方面的教程,但大部分教程过于陈旧,而且描述的过于简单.而且支付宝提供的接口一直在 ...
- 【Android】Android开发小功能,倒计时的实现。时间计时器倒计时功能。
作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...
- Android开发——ThreadLocal功能介绍
个静态的监听器对象,显然是无法接受的. 2. 使用实例 //首先定义一个ThreadLocal对象,选择泛型为Boolean类型 private ThreadLocal<Boolean> ...
- Android开发——Android的消息机制详解
)子线程默认是没有Looper的,Handler创建前,必须手动创建,否则会报错.通过Looper.prepare()即可为当前线程创建一个Looper,并通过Looper.loop()来开启消息循环 ...
- 2018-2019-2 20175217 实验四《Android开发基础》实验报告
一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:吴一凡 学号:20175217 指导教师:娄嘉鹏 实验日期:2019年5月16日 实验时间:--- 实验序号:实验四 实验名称:And ...
- Android 开发 音视频从入门到提高 任务列表 转载
<Android 音视频从入门到提高 —— 任务列表> 1. 在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 Vi ...
- (转载) Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框
Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框 标签: Android清除功能EditText仿IOS的输入框 2013-09-04 17:33 70865人阅读 ...
- Android开发案例 – 在AbsListView中使用倒计时
在App中, 有多种多样的倒计时需求, 比如: 在单View上, 使用倒计时, 如(如图-1) 在ListView(或者GridView)的ItemView上, 使用倒计时(如图-2) 图-1 图-2 ...
随机推荐
- JavaScript 运动(缓冲运动,多物体运动 ,多物体多值运动+回调机制)
匀速运动 (当需要物体做匀速运动直接调用statMove函数) function startMove(dom,targetPosetion){ //dom : 运动对象,targetPositio ...
- SqlSugar ORM 的学习
http://www.codeisbug.com/Doc/8/1163 https://www.cnblogs.com/sunkaixuan/p/6082664.html
- 9th week blog
1957年 约翰·巴科斯(John Backus)创建了是全世界第一套高阶语言:FORTRAN. 1959年 葛丽丝·霍普(Grace Hopper)创造了现代第一个编译器A-0 系统,以及商用电脑编 ...
- 安装了低版本Jdk后eclipse无法打开的终极解决方法
环境jdk1.7.0_17,eclipse oxygen(2017年6月发布) 因为之前安装的是jdk1.8.0_144,所以eclipse的相关配置都修改成了jdk1.8的版本,然而,近期因为某些原 ...
- Scala基础
1.seq[String] 用[]表示参数类型,java使用<>表示参数,因为Scala 允许以<命名方法和变量名,java不允许 2.支持range的类型:Char .Int . ...
- 30天学会绘画 (Mark Kistler 著)
第一课 球形 (已看) 第二课 重叠的球 (已看) 第三课 更多排列的球 (已看) 第四课 立方体 (已看) 第五课 空心立方体 (已看) 第六课 堆放的桌子 (已看) 第七课 堆放更多的立方体 (已 ...
- 创建一个dynamics 365 CRM online plugin (十) - Isolation mode or trust mode
Isolation Mode 也被称作为Plugin Trust CRM里面有两种plugin trust / isolation mode 1. Full Trust 只在OP系统中可使用,没有限制 ...
- chromedriver与chrome各版本的对应关系表
driver的下载地址 http://chromedriver.storage.googleapis.com/index.html 对应关系也可以查看 google官方的说明,通过当前浏览器版本找到对 ...
- Java面试题之Forward和Redirect的区别
redirect:请求重定向:客户端行为,本质上为2次请求,地址栏改变,前一次请求对象消失.举例:你去银行办事(forward.jsp),结果告诉你少带了东西,你得先去公安局办(index.html) ...
- [ZZ] MATLAB曲线拟合
MATLAB曲线拟合 http://blog.sina.com.cn/s/blog_5db2286f0100enlo.html MATLAB软件提供了基本的曲线拟合函数的命令: 多项式函数拟合: a ...