您的位置:首页 > 编程语言 > Java开发

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

2015-04-07 16:12 405 查看
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。

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


 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: