Android计时器实战:Chronometer与Handler+Timer实现

8 下载量 44 浏览量 更新于2024-09-01 收藏 129KB PDF 举报
"这篇资源主要讲述了在Android应用开发中如何实现时分秒计时器的两种常见方法,包括使用Chronometer控件以及通过Handler、Timer和TimerTask的组合方式。这两种方法都简单易懂,适合对Android计时功能感兴趣的开发者学习。" 在Android开发中,有时我们需要在应用中实现一个时分秒计时器,例如在录制视频时显示实时时间。本文将介绍两种实现方法。 首先,第一种方法是使用Android提供的Chronometer控件。Chronometer是一个专用于计时的UI组件,它可以显示自某一时刻以来经过的时间。在XML布局文件中,你可以这样添加一个Chronometer: ```xml <Chronometer android:layout_width="wrap_content" android:layout_height="wrap_content" android:format="%s" android:id="@+id/timer" /> ``` 这里的`android:format`属性决定了计时器的显示格式,`%s`表示显示秒数。在Java代码中,可以通过以下方式获取并操作Chronometer: ```java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); timer = (Chronometer) findViewById(R.id.timer); } public void btnClick(View view) { timer.setBase(SystemClock.elapsedRealtime()); // 计时器清零 timer.start(); } public void stopClick(View view) { timer.stop(); } ``` 如果你希望显示小时、分钟和秒,可以稍微调整代码: ```java public void btnClick(View view) { int hour = (int) ((SystemClock.elapsedRealtime() - timer.getBase()) / 1000 / 60); timer.setFormat("0" + String.valueOf(hour) + ":%s"); // 添加小时显示 timer.start(); } ``` 第二种方法是使用Handler、Timer和TimerTask。这种方法更灵活,但相对复杂一些。Handler用于在主线程中更新UI,Timer和TimerTask则用于定期执行任务。基本流程如下: 1. 创建一个Handler对象,用于发送消息到主线程。 2. 创建一个TimerTask,重写`run`方法,在其中更新计时器的值并发送消息到Handler。 3. 使用Timer的`scheduleAtFixedRate`方法定时执行TimerTask。 不过,由于篇幅限制,这里不再详述具体代码实现。如需了解更多关于Handler、Timer和TimerTask的计时器实现,建议查阅相关文档或教程。 无论是使用Chronometer控件还是通过Handler、Timer和TimerTask,Android开发者都可以轻松地实现时分秒计时器功能,以满足不同应用场景的需求。