1

私はタイマーを実装しています:

timer = new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    //Do something;
                }
            },1000,1000);

ただし、たとえば100回/ 10秒後にタイマーが自動的に停止するように、タイムアウトを設定したいと思います。

ありがとう。

4

4 に答える 4

3

試す

    final Timer timer = new Timer();
    timer.schedule(new TimerTask() {
        int n = 0;
        @Override
        public void run() {
            System.out.println(n);
            if (++n == 5) {
                timer.cancel();
            }
        }
    },1000,1000);
于 2013-03-25T11:00:09.583 に答える
1

反復のカウントを保持するrunメソッドの外部に変数を設定するだけです。メソッド内で、目的の量に達したときにタイマーをキャンセルするifステートメントを作成します。メソッドを実行するrun()たびに変数を1つ増やします。run()

于 2013-03-25T10:34:57.373 に答える
0

上記のタイマーが開始するとすぐに別のタイマーを開始します。これにより、10秒後に上記のタイマーがキャンセルされます。簡単な解決策として、以下のコードを確認してください。ただし、タイマーの代わりにtask()をキャンセルすることをお勧めします。

timer = new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    timer2.schedule(new TimerTask() {
                    @Override
                    public void run() {
                        timer1.cancel();
                    }
            },0);
                    //Do something;
                }
            },1000,1000);

timer2 = new Timer();
于 2013-03-25T10:35:18.143 に答える
0

このためのJavaAPIがTimerクラスにあるとは思いません。要件に基づいてカスタムロジックを実装することにより、プログラムでそれを行う必要があります。

于 2013-03-25T10:40:08.273 に答える