1 回答
TA贡献11条经验 获得超9个赞
你把task 定义为static就行了 static TimerTask task = new TimerTask(); 后面的new TimerDemo().task 都替换为task
static修饰后的成员,在编译时由内存分配一块内存空间,直到程序停止运行才会释放,那么就是说该类的所有对象都会共享这块内存空间
代码:
package day09;
import java.util.Timer;
import java.util.TimerTask;
//定时器演示
public class TimerDemo extends Timer {
// 第一个定时任务---定义在main方法外,用task引用来指向该匿名类实例对象
static TimerTask task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("my task run");
}
};
public static void main(String[] args) {
// 定时器
final Timer timer = new Timer();
// 将定时任务交给定时器时回调执行
timer.schedule(task, 1000, 1000);
// 第二个任务,还是用之前的task引用来指向该匿名类实例对象
task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
timer.cancel();
}
};
// 十秒后停止
timer.schedule(task, 10000);
}
}
添加回答
举报