如何停止和启动在后台运行的android中的线程

时间:2012-11-15 05:36:07

标签: android multithreading thread-sleep

我有两个webservices,这些是由线程在后台运行的。如果网络出现故障,我会频繁检查网络连接,并显示带有“RESYNC”按钮的对话框。

我的意图是,当我点击RESYNC按钮时,未完成的线程必须重新开始。

我使用thread.interupt()来停止线程,并使用thread.start重新开始。

这不能很好地显示错误,就像你的线程已经在运行一样。

任何人都可以帮我解决如何停止线程并重新启动它。

感谢。

3 个答案:

答案 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()方法。