2014-09-03 24 views

回答

-1

您可以使用下面的代碼:

new java.util.Timer().schedule( 
    new java.util.TimerTask() { 
     @Override 
     public void run() { 
       Object_name.close //your code to cleanup object 
     } 
    }, 
    12*60*60*1000 /*time after which it will run again*/ 
); 
+0

-1「帶有不同的線程運行」 – alfasin 2014-09-03 05:26:13

0

添加一個方法,返回它運行的最後日期單身:

static Date lastRun = new Date(); //when the class initializes 

Date lastDateRan() { 
    return lastRun; 
} 

然後添加如果今天> LASTRUN(收費來檢查的另一種方法注意只檢查日期 - 而不是時間/小時 - 如果您決定使用TimeStamp或任何其他庫)。

只要對象被調用,檢查:

if (today > lastRun) { 
    lastRun = today; 
    // and clean the object. 
} 

它不會在午夜正好運行每一天,但它會具有完全相同的效果! (午夜後的第一個電話會得到「新鮮」的數據)

+0

附註:因爲它不是線程安全的。這個問題沒有明確的要求,但因爲我們談論的是一個單獨的東西,要記住 – Yuri 2014-09-03 08:34:47

+0

@Yuri你可以這麼說(幾乎)任何答案在這裏:) – alfasin 2014-09-03 15:37:02