2014-03-19 63 views
0

所以我想知道是否有一種方法在java中的特定時間間隔運行一條線。我目前正在開發一個Android應用程序,我正在嘗試運行同一行幾秒鐘。嘗試運行一個特定的時間間隔

預先感謝您。

+0

請仔細關注答案中的提示,這意味着在應用於Android時,一般採用Java來提問的方式可能會出現問題,而Android會假設爲快速執行事件方法而保留UI線程。 –

回答

2

檢查他們,並選擇其中最適合您:

Timer ScheduledExecutorService

我覺得Timer是這種情況更好。


定時器 - 實施例: -

Timer timer = new Timer(); 
TimerTask task = new TimerTask() 
{ 
    @Override 
    public void run() 
    { 
     method(); 
    } 
}; 
// every 3 seconds 
timer.schedule(task, 0, 3000); 

ScheduledExecutorService的從Android電子文檔示例:

這裏是,設置了一個ScheduledExecutorService的 蜂鳴每一個方法的類一小時十秒鐘:

import static java.util.concurrent.TimeUnit.*; 
class BeeperControl { 
    private final ScheduledExecutorService scheduler = 
    Executors.newScheduledThreadPool(1); 

    public void beepForAnHour() { 
    final Runnable beeper = new Runnable() { 
     public void run() { System.out.println("beep"); 
    }; 
    final ScheduledFuture beeperHandle = 
     scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS); 
    scheduler.schedule(new Runnable() { 
     public void run() { beeperHandle.cancel(true); } 
    }, 60 * 60, SECONDS); 
    } 
}} 

所有這些創建一個線程,所以你不會阻止UI線程。

0
long timestart = System.currentTimeMillis(); 
int desiredTimeInSecs = 3; 

while (System.currentTimeMillis() < timeStart + desiredTimeInSecs*1000){ 
    yourCommand(); 
} 

我會讓它併發不阻止你的UIThread。

相關問題