原创首发    
 笔记四、利用Timer,TimerTask以及Handler实现有暂停和继续计时简单的计时器

1. 利用TimerTask创建任务实现run方法
绿色的是计时效果,粉色的字是弹幕,下次分享  废话不多说直接上代码
 废话不多说直接上代码
//Message是用来吧数据传给handler的
  //WHAT 用于判断是哪个任务发来的消息
        final int WHAT = 102;
//新建任务
        mTimerTask = new TimerTask() {
            @Override
            public void run() {
                //创建消息
                Message message = new Message();
                message.what = WHAT;
                //秒数自增1
                message.obj = seconds++;
                //数据传给handler处理
                handler.sendMessage(message);
            }
        };
2. 创建Handler处理从run传来的数据
把数据赋给TextView
	final Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what) {
                    case WHAT:
                        //设置数据
                        chargeSecond.setText(msg.obj.toString());
                      	break;
                }
            }
        };
3. 使用Timer的schedule方法,给任务设置延长时间,和隔几秒运行一次
 	 mTimer = new Timer();
       //每1秒运行一次run 添加一秒    
//        第一个参数是TimerTask,第二个是延迟几毫开始,第三个是每隔几毫秒运行一 
//       次run
       mTimer.schedule(mTimerTask, 0, 1000);
4.暂停计时和继续计时
其实这个很简单只需把Timer取消了就可以暂停了,继续计时就是再次运行上面三点的程序 runSecond() 这个里面是前面123点的代码
//暂停和重新开始
    public void onPauseAndResume(View view) {
        if(isPause){
            //暂停
            mTimer.cancel();
            isPause=!isPause;
            Toast.makeText(ChargeActivity.this, "暂停", Toast.LENGTH_SHORT).show();
        }else{
            isPause=!isPause;
            //启动  
            runSecond();
            Toast.makeText(ChargeActivity.this, "继续", Toast.LENGTH_SHORT).show();
        }
    }


 码划云  回复 @拉大锯
 码划云  回复 @拉大锯 


























