使用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;
下面是使用判断标志来结束线程;
public class ThreadSafe extends Thread { public volatile boolean exit = false; public void run() { while (!exit){ //do something } } } /* * 需要执行的语句,在这里需要有改变flag的语句;让循环结束;循环结束后,run在执行完毕后会自行结束线程; */