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

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;
             }
          }
        };
    }

     

 

posted @ 2014-12-08 22:05  咖啡馆的水果拼盘  阅读(231)  评论(0编辑  收藏  举报