我想在一段时间循环中从网络获取一些数据,直到用户单击屏幕上的按钮,然后停止接收数据并显示另一个活动。我收到的内容如下:
Thread listUpdater;
...
listUpdater = new Thread() {
@Override
public void run() {
TimerTask task = new UpdateListTask();
while (true) {
task.run();
}
}
};
listUpdater.start();
...
public class UpdateListTask extends TimerTask {
public UpdateListTask() {
}
@Override
public void run() {
// get some data from network (asynchronically)
}
}
用户单击按钮后,我将运行以下代码:
try {
listUpdater.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
但它不会停止新线程/计时器任务中的运行循环,所有代码仍在运行——这是我不想要的。我能做些什么来停止正在运行的代码?有没有办法停止线程?或者我可以做一些线程间布尔变量设置来停止while循环吗?
我尝试了一切,但没有成功。有人可以帮忙吗?