0

如何使用计时器将调用方法延迟一次随机时间?

if(getDropPickup())
{
    Timer timer = new Timer(getDelayTime(), new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            collectItems();
        }
    });
    timer.setRepeats(false);
    timer.start();
}

当我尝试做这样的事情时,我遇到了计时器构造函数未定义的问题。在不延迟主线程的情况下,在一段时间后调用方法的最佳方法是什么?

4

1 回答 1

0

您可以创建一个Threadwhich usesThread.sleep()这样您就不会在使用该sleep方法时阻塞您的主线程。

样本:

if(getDropPickup())
{
    Thread t = new Thread(new Runnable() {

    @Override
    public void run() {
        int delay = getDelayTime();
        Thread.sleep(delay);
        collectItems();         
    }
});

t.start();
}
于 2014-06-15T04:56:05.930 回答