Android 计时器实现
一、CountDownTimer
// 倒计时 // 总时间 24 * 60 * 60 * 1000,间隔 1000s 回调一次 onTick CountDownTimer countDownTimer = new CountDownTimer(24 * 60 * 60 * 1000, 1000) { @Override public void onTick(long millisUntilFinished) { //单位天 long day = millisUntilFinished / (1000 * 24 * 60 * 60); //单位时 long hour = (millisUntilFinished - day * (1000 * 24 * 60 * 60)) / (1000 * 60 * 60); //单位分 long minute = (millisUntilFinished - day * (1000 * 24 * 60 * 60) - hour * (1000 * 60 * 60)) / (1000 * 60); //单位秒 long second = (millisUntilFinished - day * (1000 * 24 * 60 * 60) - hour * (1000 * 60 * 60) - minute * (1000 * 60)) / 1000; // 倒计时间隔回调 Log.d("TAG", String.format("剩余时间:%d时%d分%d秒", hour, minute, second)); } @Override public void onFinish() { // 倒计时结束时的回调 } };
// 开始倒计时 countDownTimer.start(); // 取消倒计时 countDownTimer.cancel();
二、handler.postDelayed
private Handler handler = new Handler(); private Runnable runnable = new Runnable() { @Override public void run() { Log.d("TAG", "run: "); handler.postDelayed(this, 1000); } }; // 启动计时器 handler.postDelayed(runnable, 1000); // 停止计时器 handler.removeCallbacks(runnable);
三、Handler + Timer + TimerTask
private Timer timer = new Timer(); private Handler handler = new Handler(Looper.getMainLooper()){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); Log.d("TAG", "handleMessage: timer"); } };
// 初始化计时器任务 TimerTask task = new TimerTask() { @Override public void run() { Message msg = handler.obtainMessage(); msg.what = 1; msg.obj = ""; msg.sendToTarget(); } }; // 启动计时器,延迟 1s 执行,每 2s 执行一次 timer.schedule(task, 1000, 2000);
// 停止计时器 timer.cancel();
四、Handler + Thread.sleep()
private Handler handler = new Handler(Looper.getMainLooper()){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); Log.d("TAG", "handleMessage: "); } };
new Thread(new Runnable() { @Override public void run() { while (true) { try { Thread.sleep(1000); Message msg = handler.obtainMessage(); msg.what = 1; msg.obj = ""; msg.sendToTarget(); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start();
相关推荐
Android计时器实现
一个很简单计时器实现,只有开始和结束按键,以及显示秒。需要用可以下载,根据自已项目随便改就适用。
附带三种计时器实现,第三种是最好的。前两种是调研的中间结果,直到发现第三种。
android项目 android 秒表 android计时器
用Android Studio编写的有时分秒的计时器,按钮“开始”和“停止”
Android常用实现倒计时方式:CountDownTimer控件使用,子线程更新,自定义Button控件
本文实例为大家分享了Android计时器的三种方法,具体内容如下 目录: 1、借助Timer实现 2、调用handler.sendMessagedely(Message msg, long delayMillis) 3、借助布局Chronometer 1、借助Timer实现 (1) 布局文件 ...
Android实现一个计时器。功能:计时,可以暂停计时。主要利用handler的postdelay()函数。
android 计时器 用线程实现 模仿安卓系统自带计时器
开发环境:Eclipse Juno + Android 4.1 SDK(API16) 利用系统时间实现了一个简单的计时器,精确到1/10s,实现了单次计时和分圈计时功能。 练习了一下Listview的动态增删。
Android计时器实现思路 使用Chronometer控件实现计器的操作。通过设置setBase(long base)来设置初始时间,然后为其添加一个 setOnChronometerTickListener(Chronometer.OnChronometerTickListener l)事件来判断时间...
Android开发小功能,倒计时的实现。时间计时器倒计时功能。
Android RecycleView全部item倒计时的高效实现
android倒计时器的简单实现,利用CountDownTimer类。
可能我们在开发中会时常用到计时器这玩意儿,比如在录像的时候,我们可能需要在右上角显示一个计时器。这个东西其实实现起来非常简单。 只需要用一个控件Chronometer,是的,就这么简单,我都不好意思讲述一下了。 ...
这个demo主要介绍了android中实现计时器的三种方法,希望可以帮助需要的同学.
本文实例讲述了Android开发实现的计时器功能。分享给大家供大家参考,具体如下: 效果图: 布局: 三个按钮 加上一个Chronometer <?xml version=1.0 encoding=utf-8?> <LinearLayout xmlns:android=...