我有两个webservices,这些是由线程在后台运行的。如果网络出现故障,我会频繁检查网络连接,并显示带有“RESYNC”按钮的对话框。
我的意图是,当我点击RESYNC按钮时,未完成的线程必须重新开始。
我使用thread.interupt()来停止线程,并使用thread.start重新开始。
这不能很好地显示错误,就像你的线程已经在运行一样。
任何人都可以帮我解决如何停止线程并重新启动它。
感谢。
答案 0 :(得分:2)
不要使用thread.stop()
来终止线程。
您可以使用易失性标志:
private volatile boolean running = true;
public void stop() {
running = false;
}
public void run() {
while(running) {
// your code
}
}
答案 1 :(得分:1)
无法重新启动线程,您可以stop()
;
要重新开始,您必须创建线程的新实例,然后调用start。
答案 2 :(得分:0)
在run()方法上有一段时间(条件)。在你的while循环中你想要你的线程在运行时做的事情。通过线程上的setter方法将条件变量的值更改为false。不推荐使用java中的stop()方法。