所以我有一个非常简单的问题,可能是愚蠢的问题,对不起,但我真的不知道为什么这个Thread只运行一次?
new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(3000);
Log.e("comes here", "opr");
if (done) {
call(tv);
done = false;
Log.e("comes here","andr");
Thread.currentThread().interrupt();
Thread.currentThread().stop();
}
} catch (InterruptedException e) {
// TODO Auto-generated catch
// block
e.printStackTrace();
}
}
}).start();
我调试它终止于此
Thread.sleep(3000);
Log.e("comes here", "opr");
它应该一次又一次地运行直到done =true
更新
现在线程没有终止
new Thread(new Runnable() {
public void run() {
do {
try {
Thread.sleep(3000);
Log.e("comes here","opr");
if (done) {
call(tvv);
done = false;
Log.e("comes here","andr");
Thread.currentThread().interrupt();
//Thread.currentThread().stop();
}
} catch (InterruptedException e) {
// TODO Auto-generated
// catch
// block
e.printStackTrace();
}
} while (!done);
}
}).start();
在此之后我无法设置done=false
。
由于
答案 0 :(得分:3)
执行run()
方法后,该主题被视为完成或 DEAD ,以便仅运行一次。
如果您想多次调用更新的问题,可以使用循环播放。