Android中如何解决Thread第二次Thread.start()报错

时间:2021-07-13 09:01:47

        写了一个线程去实现获取服务端数据。然后将数据解析并发送Handler给UI更新。然而线程是写在一个Button的监听器里面的,当第一次单击是获取数据并绘制界面UI,第二次是清除UI上绘制的数据,到了第三次又重新获取数据并绘制,如此循环……

        于是问题出现了,当第三次点击Button的时候,就是第二次start()的时候,系统抛出异常:java.lang.IllegalThreadStateException: Thread already started.于是就想着先stop(),然后再start()。发现不可以,stop的时候报了未实现的方法异常。说法是线程不用手动停止或者关闭,自己运行到程序尾部的时候会自动关闭。

    后来发现了个方法。觉得相对来说最合理解决问题。

1.首先新建一个Runnable对象:

Runnable myable = new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub

}
};

2.然后在需要启动的地方新建一个Thread:

new Thread(myable).start();

这样,就会每次新建一个线程了,并且它会自动运行完后关闭自身。问题解决。