Timer和TimerTask的简单使用

    经常会使用到计时的这个功能,在MFC中可以使用SetTimer这个函数,在OnTimer中去作相应的处理。Java中要实现类似的功能,可以使用java.uitl.Timerjava.uitl.TimerTask这两个类。Timer是用来安排任务执行的一个类。它会专门启动一个线程用来安排任务,这个线程你可以设定为守护线程(通过构造函数Timer(boolean isDaemon)来设定 ),调用schedule()这个函数开始执行 schedule()有很多版本:

     void schedule(TimerTask task, Date when)

在某个时间(when)开始执行TimerTask, 没有重复

 

     void schedule(TimerTask task, long delay, long period)

delay毫秒后周期性的执行TimerTask

 

     void schedule(TimerTask task, long delay)

delay毫秒后开始执行TimerTask, 没有重复

 

     void schedule (TimerTask task, Date when, long period)

when这个时间点后周期性的执行TimerTask

 

 

      如果要取消Timer 可以调用cancel()方法来取消这个Timer和对应的线程。

 

TimerTask是任务的执行体,它有一个抽象方法:

 

public abstract void run();

 

我们可以继承这个方法,然后在这个方法中去做具体的处理。这两个类结合使用,就可以实现定时的功能。

 

下面来看看具体的实现:

1、  首先继承TimerTask

class MyTimerTask extends TimerTask

{

    private static int nCount = 0;

   

    @Override

    public void run()

    {

       Log.w("==== run ====", "nCount = " + nCount++); 

}

   

    @Override

    public boolean cancel()

    {

       mbCanceled = true;

       return super.cancel();

    }

}

 

2、  通过Timer执行TimerTask

//新建一个Timer,不设为守护线程

Timer myTimer = new Timer(false);

//开始执行(每一秒执行一次)

myTimer.schedule(new MyTimerTask(), 0l, 1000l);  

 

3、  结束Timer

myTimer.cancel();

//Java也要释放内存(垃圾回收器更快的回收)

myTimer = null;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值