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中,有多种计时器实现方式,包括`java.util.Timer`、`android.os.Handler`以及`CountDownTimer`。其中,`CountDownTimer`是Android提供的一个专为Android环境设计的倒计时工具,它具有线程安全和易于使用的...
这个项目适合初学者学习和理解Android计时器的实现方式,也可以根据自己的需求进行修改以适应不同的项目需求。 首先,我们需要了解Android中常用的两种计时器:`java.util.Timer` 和 `android.os.Handler`。在这个...
本文将深入探讨三种不同的计时器实现,包括它们的工作原理、优缺点以及适用场景。 第一种计时器实现:`System.currentTimeMillis()` 在Java中,`System.currentTimeMillis()` 是一个常用的方法,它返回自1970年1月1...
总的来说,这个项目是一个基础的Android计时器应用,它展示了如何在Android Studio中创建用户界面、处理用户交互以及实现计时功能。通过这个项目,初学者可以学习到Android应用的基本架构、Activity的生命周期、UI...
这里提到的是基于`Handler`的计时器实现,因为`Handler`更适合于UI线程的更新操作。 1. **Handler**:`Handler` 是 Android 中处理消息和延迟执行任务的核心类。通过创建一个`Handler`对象并关联到 Looper(消息...
在Android开发中,计时器是一项非常常见的功能,用于实现定时执行特定任务。"android 计时器"通常指的是Android SDK提供的一系列类,用于帮助开发者实现倒计时或者周期性任务。本篇将深入探讨如何使用Android中的...
本节将详细介绍如何创建一个简单的Android计时器。 首先,我们需要了解Android计时器的基础。在Android中,有两种主要的计时方式:`CountDownTimer`和`Handler`配合`Runnable`。本例中提到的"一个简单的android计时...
下面是一个简单的计时器实现步骤: 1. **创建Handler对象**:首先,我们需要创建一个`Handler`实例,这通常在Activity或Service的`onCreate()`方法中完成。创建`Handler`时,我们通常会重写`handleMessage()`方法,...
在Android开发中,计时器工具是不可或缺的一部分,特别是在创建倒计时或者定时触发某些功能的应用场景中。本文将深入探讨Android中常用的倒计时实现方式——`CountDownTimer`控件,以及如何在子线程中更新UI,并结合...
APKBus网站上提供的链接指向了一个讨论帖,虽然原始链接已经无法访问,但我们可以基于一般的Android计时器实现来探讨相关的知识点。 1. **Handler**与**Looper** 在Android中,主线程是负责处理用户界面交互的线程...
本文将介绍三种常见的Android计时器实现方式:Timer、Handler以及Chronometer。 1. 借助`Timer`实现 `Timer`类是Java中的一个定时任务调度工具,它可以安排在将来某一时刻执行或定期执行的任务。在Android中,由于...
以下是关于Android计时器及其相关功能的详细说明: 1. **计时器组件**: - 在Android中,我们可以使用多种方式实现计时功能,如`Handler`、`CountDownTimer`、`AlarmManager`或者`SystemClock`。在这个应用中,...
在Android平台上,开发一个秒表或计时器应用是一项常见的任务,这涉及到对用户界面(UI)设计、事件处理以及时间管理的理解。本项目聚焦于创建一个基础的Android秒表功能,下面将详细介绍相关的知识点。 1. **...
现在,关于源代码部分,Android计时器的实现位于Android开放源代码项目(AOSP)中。源码主要分布在`frameworks/base/core/java/android/widget/Chronometer.java`文件。通过阅读源代码,你可以了解到计时器内部的...
在Android平台上,倒数计时器(CountdownTimer)是一个常用的功能,用于实现从特定时间点开始倒计时至零的计时任务。本项目"android简单倒数计时器"是一个基于Ubuntu 10.04操作系统和Eclipse Galileo IDE的Android...
对于性能优化,可以考虑使用`CountDownTimer`类,它是一个预先定义好的计时器实现,简化了处理逻辑。还可以考虑添加振动、音效等增强用户体验的功能。 通过这个简单的计时器项目,开发者不仅可以掌握Android应用的...