使用interrupt來結束線程; timeGo= new Thread(){ @Override public void run() { while(true){ try { sleep(2000); Message message =new Message(); message.arg1=1; handler.sendMessage(message);}catch (InterruptedException e) { e.printStackTrace(); break; //必須先捕獲異常再break,才能安全結束; } } } };
這樣定義Thread 以後能夠在須要的地方直接調用 timeGo.interrupt;安全
下面是使用判斷標誌來結束線程;ide
public class ThreadSafe extends Thread { public volatile boolean exit = false; public void run() { while (!exit){ //do something } } } /* * 須要執行的語句,在這裏須要有改變flag的語句;讓循環結束;循環結束後,run在執行完畢後會自行結束線程; */