Java中的Timer和TimerTask来实现多线程

来源:互联网 发布:恢复电脑数据的软件 编辑:程序博客网 时间:2024/06/05 08:17
Timer是一个普通的类,其中有几个重要的方法;而TimerTask则是一个抽象类,其中有一个抽象方法run(),类似线程中的run()方法,我们使用Timer创建一个他的对象,然后使用这对象的schedule方法来完成这种间隔的操作。

 
public void schedule(TimerTask task, long delay, long period)
public void schedule(TimerTask task, Date when, long period)
task:TimerTask类型的对象,我们实现TimerTask的run()方法就是要周期执行的一个任务
delay/when:第一种是long类型,表示多长时间后开始执行,另一种是Date类型,表示从那个时间后开始执行
period:执行的周期,ms。
  1. publicclassTimerTaskActivityextendsActivity{    privateTimer mTimer;    @Override    protectedvoid onCreate(Bundle savedInstanceState){       super.onCreate(savedInstanceState);       // init timer       mTimer =newTimer();       // start timer task       setTimerTask();    }   @Override   protectedvoid onDestroy(){      super.onDestroy();      // cancel timer      mTimer.cancel();    }   privatevoid setTimerTask(){       mTimer.schedule(newTimerTask(){       @Override       publicvoid run(){           Message message =newMessage();           message.what =1;           doActionHandler.sendMessage(message);       }     },1000,1000/* 表示1000毫秒之後,每隔1000毫秒執行一次 */);}/*** do some action*/privateHandler doActionHandler =newHandler(){    @Override    publicvoid handleMessage(Message msg){        super.handleMessage(msg);        int msgId = msg.what;        switch(msgId){           case1:           // do some action           break;           default:           break;         }      }    };}

     

 

0 0