Android基础之——CountDownTimer类,轻松实现倒计时功能

在发现这个类之前,一直是用的handler,子线程发消息,UI线程进行倒计时的显示工作。前几天在做一个倒计时显示的时候发现了这个类,用起来非常方便

翻看了下源代码。内部已经帮我们实现了handler的子线程操作



CountDownTimer这个类用起来非常easy。两个參数。几句代码搞定,例如以下:

CountDownTimer(long millisInFuture, long countDownInterval) 


构造函数有两个參数,第一个millisInFuture是指要倒计时的总时间,单位是long ms。第二个參数countDownInterval是指倒计时的频率,是一次倒计时1s 还是一次倒计时2s

知道这两个參数的意思那就非常好办了,new一个CountDownTimer对象就会生成两个回调函数

public void onTick(long millisUntilFinished) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onFinish() {
				// TODO Auto-generated method stub
				
			}


第一个方法 就是在倒计时的时候调用的,每倒计时一次要进行什么操作。就能够放在这里面做。通常是对UI线程进行一些操作。比方对文本进行更改,达到倒计时的效果

第二个方法是倒计时完毕后调用。倒计时完毕须要进行什么操作都能够写在里面。

当然,最后一定要记得start() 否则线程不会開始

所有代码:

public class MainActivity extends Activity {

	private TextView tv;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		tv = (TextView) findViewById(R.id.tv);
		
		/** 倒计时60秒,一次1秒 */
		CountDownTimer timer = new CountDownTimer(60*1000, 1000) {
			@Override
			public void onTick(long millisUntilFinished) {
				// TODO Auto-generated method stub
				tv.setText("还剩"+millisUntilFinished/1000+"秒");
			}
			
			@Override
			public void onFinish() {
				tv.setText("倒计时完毕了");
			}
		}.start();
	}

}

效果图:


       

posted @   brave-sailor  阅读(318)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2017-07-31 Swift - 可编辑表格样例(可直接编辑单元格中内容、移动删除单元格)
2015-07-31 Android ble 蓝牙4.0 总结
2014-07-31 Java中Comparable和Comparator实现对象比较
2014-07-31 java的Comparator和Comparable
2014-07-31 android-继承BaseAdapter--自定义适配器,getView执行多次的解决方法
点击右上角即可分享
微信分享提示