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 usesを作成できます。Thread.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 に答える