2012-09-07 60 views
0

hi mate我有一個使用循環的線程。在他收到消息的時候,他會調用一個阻塞方法(樣式讀取套接字)。如何寫StopThread方法來阻止這個線程終止他?我是否在Handler上調用quit或中斷到線程? 這是代碼:如何在循環中使用阻塞呼叫的interrupta線程

class LooperThread extends Thread { 
      public Handler mHandler; 

      public void run() { 
       Looper.prepare(); 

       mHandler = new Handler() { 
        public void handleMessage(Message msg) { 
        try{ 
       blocking call read 
        }catch(Interrupet Exception e) { } 
        } 
       }; 

       Looper.loop(); 
      } 
public void stopThread(){ ??? } 
     } 

回答

1

呼叫

thread.interrupt() 

中斷線程。 編輯:你將不得不在線程上發佈一個可運行的。

looperthread.handler.postrunnable(new Runnable(){ 

run(){ 
    Looper.myLooper().quit(); 
} 
}); 
+0

並且還插入了循環?我想中斷線程不僅讀取。我認爲與中斷我只停止閱讀 – esoni

+0

然後,你還將不得不在線程中使用Looper.myLooper()。退出() – nandeesh

+0

什麼是我的looper和什麼手段我必須發佈runnable?我的線程有方法運行 – esoni