1、这是网上找的java代码
TimerTask task1 = new TimerTask() { private int i = 1; @Override public void run() { System.out.print(i + " task1:" + DateUtil.formatNow() + " 开始执行, "); ThreadUtil.sleep(11 * 1000); System.out.println(DateUtil.formatNow() + " 结束"); i++; } }; TimerTask task2 = new TimerTask() { private int i = 1; @Override public void run() { System.out.print(i + " task2:" + DateUtil.formatNow() + " 开始执行, "); ThreadUtil.sleep(11 * 1000); System.out.println(DateUtil.formatNow() + " 结束"); i++; } }; Timer timer = new Timer("timer"); timer.scheduleAtFixedRate(task1, 5000, 2000); timer.scheduleAtFixedRate(task2, 5000, 2000);
1、这是在compose中的源代码
public void schedule(TimerTask task, long delay) { if (delay < 0) throw new IllegalArgumentException("Negative delay."); sched(task, System.currentTimeMillis()+delay, 0); }
可以看出Timer其中的一个方法,接受的是一个TimerTask 对象。所以在compose中进行创建代码
timer = Timer() timer?.schedule(object : TimerTask() { override fun run() { showControl = false } }, 8000,100)
创建对象时候要重写其 run 方法才可以执行,执行完毕之后采用 cancel 进行计时器的取消
简单记录一下:
参考的网址结合源代码