我有正在运行的线程,我想停止并稍后在某个时候恢复。我学会了不使用 stop() 等,因为这些已被弃用,并且在下面的代码中似乎成功地停止了线程。它只是退出运行方法。现在,我该如何重新启动它?如果我调用 start() 方法,它表示线程仍在运行,那么在这种情况下直接调用 run() 会做吗?它会引起任何问题吗?顺便说一句,这适用于 Android 应用程序,如果这有什么不同的话。
private volatile stopThread;
public void stopButton() {
// this is called when button is clicked
// and thread is already started and running
stopThread= true;
}
public void run() {
while (!stopThread) {
// do something here
}
stopThread=false;
}
编辑:它是一个在线程启动时启动的计时器,然后可以暂停并再次启动。所以 timer 是一个包含 Thread 对象的类(我已经用 SurfaceView 扩展了这个类)。