public abstract class TimerTaskextends Objectimplements Runnable
可以由 Timer 安排一次或重复执行的任务。
构造函数摘要
修饰符 | 构造函数 | 描述 |
---|---|---|
TimerTask() | 创建一个新的计时器任务。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
取消此计时器任务。 | ||
abstractvoid | 此计时器任务要执行的操作。 | |
scheduledExecutionTime() | 返回此任务最近一次实际执行的计划执行时间。 |
从类 java.lang.Object 继承的方法 |
---|
clone,equals,finalize,getClass,hashCode,notify,notifyAll,toString,wait,wait,wait |
构造函数详细信息
Protected TimerTask()
创建一个新的计时器任务。
方法详情
public abstract void run()
此计时器任务要执行的操作。
指定者:
在接口 Runnable 中运行
public boolean Cancel()
取消此计时器任务。 如果任务已安排为一次性执行但尚未运行,或者尚未安排,则它永远不会运行。 如果任务已被安排重复执行,它将永远不会再次运行。 (如果此调用发生时任务正在运行,则任务将运行到完成,但永远不会再次运行。)
请注意,从重复计时器任务的 run 方法中调用此方法绝对保证计时器任务不会再次运行。
该方法可能会被重复调用; 第二次和后续调用无效。

返回:
如果此任务已安排为一次性执行但尚未运行,或者此任务已安排为重复执行,则为 true。 如果任务被调度为一次性执行并且已经运行,或者如果任务从未被调度,或者如果任务已经被取消,则返回 false。 (简单地说,如果该方法阻止了一个或多个预定执行的发生,则该方法返回 true。)
scheduledExecutionTime
public long scheduledExecutionTime()
返回此任务最近一次实际执行的计划执行时间。 (如果在任务执行过程中调用此方法,则返回值是当前任务执行的预定执行时间。)
此方法通常从任务的 run 方法中调用,以确定任务的当前执行是否足够及时以保证执行计划的活动:
public void run() {if (System.currentTimeMillis() - scheduledExecutionTime() >=MAX_TARDINESS)return;// Too late; skip this execution.// Perform the task}
此方法通常不与固定延迟执行重复任务结合使用,因为它们的计划执行时间允许随时间漂移,因此不是非常重要。
返回:
计划最近执行此任务的时间,采用 Date.getTime() 返回的格式。 如果任务尚未开始其第一次执行,则返回值未定义。
java timer使用方法
Timer都是跟TimerTask两个类结合一块使用的,Timer中最重要的就是schedule方法,下面这个历史是利用Timer跟TimerTask循环执行打印语句哈。 其他schedule方法的使用请参考api,里面写的很详细的。 public class TimerTest3 { public static void main(String[] args) { Timer t = new Timer(); (new TimerTask(){ @Override public void run() { (()); } }, 100l, 1000l);//100表示第一次执行时要延迟多少毫秒,1000表示每个一秒执行打印语句。 }}
JAVA ME 怎么让fonts 的 size (small, middle, large)通过一个按钮 每三秒改变一次,点停就停 求代码
3秒间隔比较长,用Timer实现的
public class FontTest extends MIDlet {
protected void destroyapp(boolean arg0){}
protected void pauseApp() {}
volatile public int font_status;
volatile public Timer timer;
protected void startApp(){
final Form f=new Form(字体测试);
final StringItem item=new StringItem(字体变化,);
final Font fonts[]={
(_MONOSPACE, _PLAIN, _SMALL),
(_MONOSPACE, _PLAIN, _MEDIUM),
(_MONOSPACE, _PLAIN, _LARGE)
final Command CMDStop=new Command(停止改变, , 0),
cmdGo=new Command(开始改变, , 0);
final String texts[]={小字体,中字体,大字体};
(fonts[0]); (texts[0]);
final Command cmdExit=new Command(退出, , 0);
(cmdExit); (cmdGo);
(new CommandListener() {
public void commandAction(Command c, Displayable d) {
if(c==cmdGo){
timer=new Timer();
(new TimerTask() {
public void run() {
synchronized (item) {
font_status++;
(fonts[font_status%3]);
(texts[font_status%3]);
} , 0,3000);
(cmdStop);
}else if(c==cmdStop){
(cmdStop);
}else if(c==cmdExit) notifyDestroyed();
(this)(f);
?!java.util.timer每天 在固定时间执行一次,用哪个方法呢
// 一天的毫秒数long daySpan = 24 * 60 * 60 * 1000;// 规定的每天时间15:33:30运行final SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd 15:33:30);// 首次运行时间Date startTime = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss)((new Date()));// 如果今天的已经过了 首次运行时间就改为明天if(() > ())startTime = new Date(() + daySpan);Timer t = new Timer();TimerTask task = new TimerTask(){@Overridepublic void run() {// 要执行的代码(xxxxxxxxx);}};// 以每24小时执行一次(task, startTime, daySpan);
发表评论