`
zhiweiofli
  • 浏览: 512099 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android Timer类的使用

阅读更多

Android的计时器与Java的有点不同,需要配套TimerTask使用,基本的用法如下:

Handler handler = new Handler() {   
    // 定义处理信息的方法   
    public void handleMessage(Message msg) {   
        switch (msg.what) {   
        case 1:   
            //处理代码   
            break;   
        }   
        super.handleMessage(msg);   
    }   
  
};   
TimerTask timerTask = new TimerTask() {   
  
    @Override  
    public void run() {   
        Message message = new Message();   
        message.what = 1;   
        handler.sendMessage(message);   
    }   
  
};   
// new一个计时器实例   
Timer timer = new Timer();   
// new一个计时器任务的实例,并重写其run方法,定义触发的动作   
  
// 设定计时器的任务以及时间   
timer.schedule(welcomeTask, 1500);  

 

Timer有个Cancel的方法,一旦调用,之后再schedule任务就会报错.同样,TimerTask也可以取消,但当Timer计时完毕触发调用该任务时就会报错说,该任务已取消!

所以要实现循环计时的动作,可以用以下的方法:

              private Handler handler = new Handler() {
		// 定义处理信息的方法
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case 1:
                                                           //处理代码
                                       timer.cancel();
			           break;
			}
			super.handleMessage(msg);
		}

	};;
	
	private Timer timer =null;
	
	private class MyTimeTask extends TimerTask{

		@Override
		public void run() {
			Message message = new Message();
			message.what = 1;
			handler.sendMessage(message);
		}
		
	}

//某处调用timer*************************************************************
                timer = new Timer(); //计时任务开始
	timer.schedule(new MyTimeTask(), 2000);

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics