在Android的SDK中,为我们提供了一个计时器,这个计时器称为Chronometer,我们可以成它为Android的一个组件,同时它也具备自己独有的方法。

Chronometer的使用比较方面简单,再也不需要使用定时器来管理时间了。

代码如下:

package com.kelly.timer;import android.app.Activity;import android.os.Bundle;import android.os.SystemClock;import android.support.v4.view.ViewPager;import android.view.View;import android.widget.Chronometer;import android.widget.Toast;import android.widget.Chronometer.OnChronometerTickListener;public class MainActivity extends Activity {Chronometer chronometer;long toatlTime = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);chronometer = (Chronometer) findViewById(R.id.timer);/** * 设置现实的格式,你可以指定一个字符串,字符串中包含一个%s,然后chronometer * 就会自动将mm:ss的那个时间放置到你的第一个%s的位置。 */// chronometer.setFormat("%s");chronometer.setOnChronometerTickListener(new OnChronometerTickListener() {public void onChronometerTick(Chronometer cArg) {toatlTime++;long time = SystemClock.elapsedRealtime()- cArg.getBase();int h = (int) (time / 3600000);int m = (int) (time - h * 3600000) / 60000;int s = (int) (time - h * 3600000 - m * 60000) / 1000;String hh = h < 10 ? "0" + h : h + "";String mm = m < 10 ? "0" + m : m + "";String ss = s < 10 ? "0" + s : s + "";cArg.setText(hh + ":" + mm + ":" + ss);}});/** * SystemClock.elapsedRealtime() 获取从启动开始的时间,设置了它之后计时器会从00:00开始计时 * SystemClock.currentThreadTimeMillis()获取当前Thread的运行时间 * SystemClock.setCurrentTimeMillis (long millis) 设置当前的时间 *  * chronometer.setBase()方法可以设置当前的计时器开始计时的时间 */chronometer.setBase(SystemClock.elapsedRealtime());// 启动chronometer.start();}public void stop(View view) {chronometer.stop();Toast.makeText(getBaseContext(), "-->" + (toatlTime - 2), 1).show();}}
Chronometer显示时间格式为00:00,如何你想改变格式,可以在onChronometerTick()中进行操作。对于如何获取运行的总时间,则通过totalTime++实现,但此时的totalTime和运行的总时间并不相符,因为start、stop都会触发onChronometerTick(),所以需要totalTime-2.

更多相关文章

  1. Android中修改系统时间的几种方式
  2. Android中判断字符串中必须包含字母或者数字_Android
  3. android9.0 系统默认时间修改
  4. android 日期时间选择器
  5. android 复制、粘贴字符串 (判断API 11 )
  6. Android实现自定义的 时间日期 控件

随机推荐

  1. anr日志
  2. android 一直在最前面的浮动窗口效果
  3. Android的ListView,数据更新后自动scroll
  4. android视频不播放的问题
  5. android中判断网络和WIFI是否连接
  6. Android(安卓)实现闪屏页和右上角的倒计
  7. 设置TextView文字居中
  8. android视频不播放的问题
  9. Android(安卓)studio No executable code
  10. android 监听USB连接状态