我有这个现有的定时器功能:
final Timer waveTimer = new Timer() {
@Override
public void run() {
double value = r.getByte(); // takes quite long to finish
wave.renderWaveOnFly(value);
}};
waveTimer.scheduleRepeating(50);
然而它的工作原理,用户界面被“阻止”并且用户不能点击并在用户界面中做任何事情,直到定时器完成时,当我创建另一个定时器的部分用户界面调用时waveTimer.cancel()
,我创建了另一个定时器,在 10 秒后取消这个定时器,所以用户界面是在那之前不能使用。
有没有办法实现一个非阻塞计时器,让它暂停一段时间,也许只是为了确保 UI 没有被阻塞并且用户仍然可以在 UI 中做一些事情。
我的意思是,仍然感觉 UI 仍然是响应式的。
我不确定这个数字,但说它每 100 毫秒停止一次,然后让位于 UI 并在暂停或类似的情况后恢复 100 毫秒。我在想用什么方法来处理。