2012-10-08 125 views
2

可能重複:
Terminated Thread Revival運行終止線程的Java的Android

Thread threadWait = new Thread() 
    { 
     @Override 
     public void run() { 
      try { 
       sleep(10000); 
       sync = false; 
      } catch (InterruptedException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     }    
    }; 

我把這個線程在這裏:

  threadWait.start(); 
     while(sync){ 
     //do something 
     } 

時threadWait完成狀態終止。我怎麼能再次開始線程?任何想法? THX全部!

SOLUTION:

Runnable runWait = new Runnable(){ 
    public void run(){ 
     try { 
      Thread.sleep(10000); 
      sync = false; 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 
}; 

和..

Thread first = new Thread(runWait); 
      first.start(); 
+0

http://stackoverflow.com/questions/5411509/terminated-thread-revival – climbage

回答

1

我怎麼能再次啓動線程?

你不行。任何線程只能運行一次。當然,你可以創建一個新的Thread具有相同Runnable,如果你想,並啓動第二個線程...

Runnable runnable = new Runnable() { 
    // Code as before 
}; 
Thread first = new Thread(runnable); 
first.start(); 
... Maybe the first thread dies... 
Thread second = new Thread(runnable); 
second.start(); 
+0

你救救我:D THX! –

1

不能啓動相同的Thread對象多次。只需創建新的Thread並啓動它。