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