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

     

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值