【发布时间】:2019-10-13 21:59:22
【问题描述】:
我不知道使用 Threads 是否是我想要达到的目标,因此请随时根据需要修改代码。
我正在尝试在我的应用程序中实现一个功能,其中TextView 切换到 1 值,然后每 5 秒恢复到初始值。我在一个线程上实现了以下使用:
layoutDate.setText(firstNumber);
Thread numberSwitch = new Thread() {
@Override
public void run() {
while(!isInterrupted()) {
try {
Thread.sleep(5000);
runOnUiThread(new Runnable () {
@Override
public void run() {
layoutDate.setText(secondNumber);
}
});
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
numberSwitch.start();
我尝试在runUiOnThread 之后以及嵌套的run 之后添加layoutDate.setText(firstNumber),但它仍然无法按我的意愿工作。
我想实现以下目标:
【问题讨论】:
-
改用处理程序
-
当前状态下的代码在做什么?
-
@RicardoA。所以
onCreate设置为layoutDate.setText(firstNumber),然后在5 秒后设置layoutDate.setText(secondNumber)。问题是它不会恢复到第一个数字,无论我在线程中添加layoutDate.setText(firstNumber)的位置 -
没听懂。它创建它并设置初始值,5 秒后设置第二个值。当你希望它恢复到第一个?再过 5 秒?
-
@RicardoA。是的——就是这样。 1. onCreate 设置 firstValue 2. 等待 5 秒 3. 设置 secondValue 4. 等待 5 秒 5. setFirstValue
标签: java android textview android-runonuithread