Handler机制在秒表中的运用

来源:互联网 发布:vm安装linux虚拟机 编辑:程序博客网 时间:2024/06/05 00:52
/  直接上代码了 * 需求:实现秒表的效果 * 秒表的格式00:00:00
Handler handler = new Handler(){        public void handleMessage(android.os.Message msg) {            if (msg.what == 0) {                tv.setText(change(num));                num++;            } else if (msg.what == 1) {                num=0;            }        };    };    TextView tv ;    int num = 0;    Timer timer;//计时器,可精准计时。
@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tv = (TextView)findViewById(R.id.textView1);    }
public String change (int num) {        int seconde = num % 60;        int min = num / 60 % 60;        int hour = num / 60 / 60;        String s = seconde < 10 ? "0"+seconde:seconde+"";        String m = min < 10 ? "0"+min:min+"";         String h = hour < 10 ? "0"+hour:hour+"";         return h+":"+m+":"+s;    }
boolean flag;    public void click (View v) {        switch (v.getId()) {        case R.id.button1:  //开始计时            /*             * 通过Timer计时器设置计时任务             * 1:要做的计时任务,即每隔多长时间做的那件事情             * 2:多少毫秒后开始计时             * 3:每隔多长时间执行一次计时任务             * */            timer = new Timer();            timer.schedule(new TimerTask() {                @Override                public void run() {                    // TODO Auto-generated method stub                    handler.sendEmptyMessage(0);                }            }, 0, 1000);            break;        case R.id.button2:   //停止计时//          num = 0;            timer.cancel();  //取消计时器中执行任务,停止计时            break;        }    }
0 0