网上说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,大致是这样,但能够无限次数运行。