2011-07-22 23 views
0

我試圖讓schedule()方法等到特定的小時和分鐘 來了,開始執行任務,但它沒有工作 因爲該方法schedule()犯規需要幾個小時和分鐘 作爲參數,究竟是什麼方法replacment ?我是我應該安排幾小時的時間表 然後當小時到了節目檢查分鐘?那麼如果兩者都正確 它會開始執行或什麼?如何爲特定的小時和分鐘創建Timer.schedule()?

P.S 爲使事情更容易理解,如何使一些similier這個 :

時間表(新TimerClass(),所需時間期望分鐘)?

+0

相對於_now_的小時和分鐘? – Moonbeam

回答

0

你不需要這樣的硬編碼。測試小時然後minutes.Just安排像下面的任務。 下面的任務將在一個小時後執行,並將在每30000ms重複一次。如果您只需要執行一次,那麼取消第一次執行後的時間,例如使用t.cancel(),並將小時+分鐘轉換爲毫秒以將計劃時間

TimerTask scanTask; 
final Handler handler = new Handler(); 
Timer t = new Timer(); 


scanTask = new TimerTask() { 
     public void run() { 
       handler.post(new Runnable() { 
         public void run() { 
         //do your task here  

        } 
       }); 
     }}; 

t.schedule(scanTask, 1*60*60*1000, 30000); 
0

如果你要安排一個特定的時鐘時間(而不是當前的時間延遲),這裏有一些選擇:

  • 使用Quartz,如果你這樣做不夠爲額外的圖書館辯護。 Quartz可以很容易地指定時鐘時間,並支持調度循環事件。
  • 否則,在您計劃的時間,計算當前時間與所需時間之間的差異。 (使用Calendar類創建時鐘時間,轉換爲日期和getMillis()。)將差異輸入到Timer或ScheduledThreadPoolExecutor。
相關問題