写了一个线程去实现获取服务端数据。然后将数据解析并发送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();这样,就会每次新建一个线程了,并且它会自动运行完后关闭自身。问题解决。
本文介绍了一种解决Android中重复启动线程导致的问题的方法。通过创建新的Runnable对象并在需要时启动新线程来避免java.lang.IllegalThreadStateException错误。

565

被折叠的 条评论
为什么被折叠?



