1. 程式人生 > >Android終止無限迴圈執行緒和程式退出時銷燬執行緒

Android終止無限迴圈執行緒和程式退出時銷燬執行緒

              在android中開啟的執行緒用Thread.stop()來關閉是不會真正關閉的,當我們再次start執行緒的時候,會產生異常:Thread is already started.

針對這個問題可以線上程的run方法裡,加一個判斷標誌。例如:

              class TestThread extends Thread{

                         public void run(){

                                     while(isTrue){

                                               //做你要做的事。

                                     }

                         }

              }

              在需要關閉的時候,將flag置為false: isTrue=false;並且將執行的執行緒物件掛起然後置為null(假設開啟的執行緒物件為mTestThread) :

               mTestThread.interrupt();

               mTestThread=null;

              再次用到的時候進行如下處理即可:

              if(mTestThread==null){

                           mTestThread=new TestThread();

                          mTestThread.start();

               }