2011-06-02 20 views

回答

1
Thread t5 = new Thread(Runnable_that_waits_5_seconds); 
Thread t60 = new Thread(Runnable_that_waits_60_seconds); 
t5.start(); 
t60;start(); 

現在,你只需要定義你的runnables。

另外,你應該給你的runnables一個方法來檢測它們是否被中斷,如果它們終止了,並且中斷服務的清理代碼中的每個線程。

+0

我的服務應該實現可執行的runnable嗎? – NullPointerException 2011-06-02 13:18:06

+0

您的服務不必實現可運行,您可以聲明一個可運行的類(其中兩個)。 markf的例子顯示了這方面的事情(和一個調度技術;以我的例子你需要每個線程先睡)。 – mah 2011-06-02 13:21:59

3

可以使用ScheduledExecutorService創建和運行計劃的事件,然後將它們像這樣:

private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2); 

final Runnable r1 = new Runnable() { 
    @Override 
    public void run() { 
     Log.i("TestStuff", "r1 ran at " + new Date()); 
    } 
}; 

final Runnable r2 = new Runnable() { 
    @Override 
    public void run() { 
     Log.i("TestStuff", "r2 ran " + new Date()); 
    } 
}; 

scheduler.schedule(r1, 5, TimeUnit.SECONDS); 
scheduler.schedule(r2, 60, TimeUnit.SECONDS); 

注意,線程不能做UI上的任何東西,但你曾提到一個「單服務「,所以我假設你正在做所有非UI的東西。

相關問題