網上說Thread不須要stop()的緣由是由於運行到尾部就會自動釋放,而代碼: java
Thread myThread = new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub Log.i("thread", "" + count); while (runable) { count++; try { Thread.sleep(100); } catch (Exception e) { } Message msg = mhandler.obtainMessage(FLAG_UPDATE, 0, 0); mhandler.sendMessage(msg); } } });
在第二次start()的時候,系統拋出異常:java.lang.IllegalThreadStateException: Thread already started. ide
這是個很悲催的事情,而我如今也只能,這樣: 性能
Thread myThread = new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub Log.i("thread", "" + count); while (true) { if (runable) { count++; try { Thread.sleep(100); } catch (Exception e) { } Message msg = mhandler.obtainMessage(FLAG_UPDATE, 0, 0); mhandler.sendMessage(msg); } } } });
不過這樣的犧牲就是有線程在無限循環...性能... 線程
不知列位大牛是怎麼處理這裏的。 code
這個已經解決了,能夠寫一個繼承Thread的類,或者寫一個Runnable,而後再new Thread(xx).start();就能夠了,回頭看一下,真小白啊! 繼承
新代碼以下: io
建立一個Runnable,用於Thread執行 class
Runnable sendable = new Runnable() { @Override public void run() { // TODO Auto-generated method stub } };run方法中寫上須要操做的邏輯,而後這樣調用:
new Thread(sendable).start();這樣,每次須要調用的時候會從新new一個Thread,大致是這樣,但能夠無限次數運行。