1 回答

TA貢獻(xiàn)11條經(jīng)驗(yàn) 獲得超9個(gè)贊
你把task 定義為static就行了?? static? TimerTask task = new TimerTask(); 后面的new TimerDemo().task 都替換為task
static修飾后的成員,在編譯時(shí)由內(nèi)存分配一塊內(nèi)存空間,直到程序停止運(yùn)行才會(huì)釋放,那么就是說(shuō)該類的所有對(duì)象都會(huì)共享這塊內(nèi)存空間
代碼:
package day09;
import java.util.Timer;
import java.util.TimerTask;
//定時(shí)器演示
public class TimerDemo extends Timer {
?? ?// 第一個(gè)定時(shí)任務(wù)---定義在main方法外,用task引用來(lái)指向該匿名類實(shí)例對(duì)象
?? ?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) {
?? ??? ?// 定時(shí)器
?? ??? ?final Timer timer = new Timer();
?? ??? ?// 將定時(shí)任務(wù)交給定時(shí)器時(shí)回調(diào)執(zhí)行
?? ??? ?timer.schedule(task, 1000, 1000);
?? ??? ?// 第二個(gè)任務(wù),還是用之前的task引用來(lái)指向該匿名類實(shí)例對(duì)象
?? ??? ?task = new TimerTask() {
?? ??? ??? ?@Override
?? ??? ??? ?public void run() {
?? ??? ??? ??? ?// TODO Auto-generated method stub
?? ??? ??? ??? ?timer.cancel();
?? ??? ??? ?}
?? ??? ?};
?? ??? ?// 十秒后停止
?? ??? ?timer.schedule(task, 10000);
?? ?}
}
添加回答
舉報(bào)