2014-09-03 43 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