我已经搜索了杀死Runnable但是我找不到这个代码的真实答案。我尝试过boolean和stop()方法。有人可以帮我杀死这个runnable吗?感谢。
Runnable runnable = new Runnable() {
@Override
public void run() {
while(true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
myL.setBackgroundResource(R.drawable.close);
}
});
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
myL.setBackgroundResource(R.drawable.open);
}
});
}
}
};
new Thread(runnable).start();
答案 0 :(得分:0)
您可以设置退出条件:
private class MyThread extends Thread {
private boolean volatile exit = false;
@Override
public void run() {
while(!exit) {
}
}
public void stopMyThread() {
exit = true;
}
}
并从您的代码中调用
myThreadInstance.stopMyThread();
当你需要让你运行方法完成
答案 1 :(得分:0)
你无限地重复着一秒钟的等待。这永远不会停止。你需要有一个boolean
标志作为继续/停止条件,你需要在线程需要停止时否定它的值。
如果您想从其他Thread
停止播放,请拨打Thread.interrupt
。