timer 计时器

来源:互联网 发布:mac下安装mysql 编辑:程序博客网 时间:2024/04/28 11:55

   代码简洁


package com.example.a1.zhaoshan20170619;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.os.SystemClock;import android.support.v7.app.AppCompatActivity;import android.widget.TextView;import java.text.DecimalFormat;import java.util.Timer;import java.util.TimerTask;public class MainActivity extends AppCompatActivity {    private long baseTimer;    private TextView timerView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //SystemClock类,这个类仅仅是一个获取系统时间、运行时间的工具类。        //此类有两个方法 uptimeMillis()返回的是系统从启动到当前处于非休眠期的时间。       // elapsedRealTime()返回的是系统从启动到现在的时间。        MainActivity.this.baseTimer = SystemClock.elapsedRealtime();        //初始化控件         timerView = (TextView) findViewById(R.id.textView);        //实例化一个Handler用来处理消息        final Handler startTimehandler = new Handler(){            public void handleMessage(android.os.Message msg) {                if (null != timerView) {                    timerView.setText((String) msg.obj);                }            }        };        new Timer("开机计时器").scheduleAtFixedRate(new TimerTask() {            @Override            public void run() {                int time = (int)((SystemClock.elapsedRealtime() - MainActivity.this.baseTimer) / 1000);                String hh = new DecimalFormat("00").format(time / 3600);                String mm = new DecimalFormat("00").format(time % 3600 / 60);                String ss = new DecimalFormat("00").format(time % 60);                String timeFormat = new String(hh + ":" + mm + ":" + ss);                Message msg = new Message();                msg.obj = timeFormat;                startTimehandler.sendMessage(msg);            }        }, 0, 1000L);    }}

原创粉丝点击