我正在为Raspberry Pi创建门锁系统。用户刷卡时,门将使用以下代码解锁:

piface.getRelay(PiFaceRelay.K0).open();


我正在尝试在门锁之前创建5秒的延迟,然后使用以下行将其锁定:

piface.getRelay(PiFaceRelay.K0).close();


这是我用来尝试执行5秒钟延迟的代码,但是当前它会解锁,然后立即再次锁定,而这并没有足够的时间让一个人实际推开门:

piface.getRelay(PiFaceRelay.K0).open();

Timer autoLockTimer = new Timer(5000, new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        piface.getRelay(PiFaceRelay.K0).close();
    }
});

autoLockTimer.setInitialDelay(5000);
autoLockTimer.setRepeats(false);
autoLockTimer.start();


我想我只是没有正确使用计时器。任何建议将不胜感激。

最佳答案

为什么不简单(从头开始):

new Thread(new Runnable() {
    public void run() {
           piface.getRelay(PiFaceRelay.K0).open();
           Thread.sleep(5000);
           piface.getRelay(PiFaceRelay.K0).close();
    }
}).start();

07-26 04:56