2017-06-07 11 views
0

私はAndroidアプリケーションを開発していますが、私はVibrationイベントを管理しようとしています。 スイッチがチェックされているときに、毎分無作為にスケジュールする必要があります。私はこのコードを使用している:ランダムタイミング(毎分ランダムなイベント)をスケジュールする方法

int delay3 = (60 + new Random().nextInt(60)) * 1000; 

timer3.schedule(timerTask3, 0, delay3); 

をしかしタイマーは、スイッチがオフになるまでdelay3を変更し、再度チェックしません。ランダムなタイミングでイベントをスケジュールする方法はありますか?すなわち、delay3は、タスクの実行中にスイッチのチェックを外さずに変更する必要がありますか?

ありがとうございます。

+0

あなたが – sumit

答えて

0

ランダム遅延後にタスクを1回実行するようにスケジュールします。タスクの中で、目的のプロセスの後で、ランダムな遅延の後に再スケジューリングします。

例:

Random random = new Random(); 
Timer timer = new Timer(); 
timer.schedule(new MyTimerTask(timer, random), random.nextInt(10000)); 

と:

private static class MyTimerTask extends TimerTask { 
    private final Timer timer; 
    private final Random random; 

    public MyTimerTask(Timer timer, Random random) { 
     this.timer = timer; 
     this.random = random; 
    } 

    @Override 
    public void run() { 
     System.out.println("TEST"); 
     timer.schedule(new MyTimerTask(timer, random), random.nextInt(10000)); 
    } 
} 
+0

を書かれているものをあなたのコードを共有していただきありがとうございます。それはうまくいく。あなたは仕事をキャンセルすることで私を助けることができますか? – italianfranny

関連する問題