Java中的定时器Timer的使用及实例


在一个Android项目中用过一个定时器,就是五分中之后没有对程序进行操作,让程序自动退出。

现在写一下几个常用的方式,就以定时炸弹为例

1,两秒之后炸弹爆炸

//定义一个两秒之后的定时器,两秒之后爆炸
  Timer timer1 = new Timer();
  timer1.schedule(new TimerTask(){

   @Override
   public void run() {
    System.out.println("炸弹爆炸...");
   }
  
  }, 2000);

2.两秒之后一个炸弹爆炸,以后是每个一秒爆炸一次,连环爆炸

//两秒之后第一个炸弹爆炸,之后每隔一秒爆炸一次
  Timer timer2 = new Timer();
  timer2.schedule(new TimerTask(){

   @Override
   public void run() {
    System.out.println("炸弹爆炸...");
   }
  
  }, 2, 1);

3.一个连环炸弹,先隔两秒爆炸一次,然后隔四秒爆炸一次,然后再两秒,一秒

//一个连环炸弹,先隔两秒爆炸一次,然后隔四秒爆炸一次,然后再两秒,一秒
  class MyTimerTask extends TimerTask{
  
   @Override
   public void run() {
    count = (count + 1)%2;
    System.out.println("炸弹爆炸...");
    new Timer().schedule(new MyTimerTask(), 2000  + 2000*count);
   }
  
  }
  Timer timer3 = new Timer();
  timer3.schedule(new MyTimerTask(), 2000);

4.让某日某个时候爆炸

Timer timer4 = new Timer();
  timer4.schedule(task, time);

task 是TimerTask

timer 是Date类型

5.每天某个时候爆炸

  timer4.schedule(task, delay, period);
  timer4.scheduleAtFixedRate(task, firstTime, period);

用其中一个方法即可

period是long类型的

当然第4和第5有第三方的可以让我们使用,直接配置就可以比如quartz

相关内容