【发布时间】:2021-09-07 09:23:19
【问题描述】:
我在 android 中尝试了简单的代码,它每秒将 textView 更改为经过的秒数:
onCreate 方法:
Runnable runnable = new Wait(15);
sleep = new Thread(runnable);
sleep.start();
一个扩展 Thread 的新类:
class Wait extends Thread {
int seconds;
Wait(int seconds) {
this.seconds = seconds;
}
@Override
public void run() {
for (int i = 1 ; i < this.seconds + 1; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
int finalI = i;
handler.post(new Runnable() {
@Override
public void run() {
textView.setText(finalI + "");
}
});
}
}
}
我正在尝试(没有任何成功)阻止它:
// onClick button method
sleep.interrupt();
为什么它不起作用? 它不会停止线程。它只是缩短了睡眠时间。之后,文本保持更改(循环继续运行)。
【问题讨论】:
-
你解决问题了吗?
标签: android multithreading sleep