100msごとに実行されるタイマーを使いたかったので調べました。
/** タイマー */ Timer timer = null; /** タイマーを開始する */ private void startTimer() { int firstInterval = 100; int interval = 100; // Timerオブジェクトの生成 timer = new Timer(); // タイマーを開始する timer.schedule(new TimerTask() { // タイマーが満了した @Override public void run() { handler.post(new Runnable() { @Override public void run() { Log.w("tag", "Timer has expired."); } }); } }, firstInterval, interval); } /** タイマーを停止する */ private void stopTimer() { this.timer.cancel(); this.timer.purge(); this.timer = null; }
一度、cancelメソッドが実行されるとタイマーは破棄されてしまうらしく、2回目から呼び出すときにはTimerオブジェクトを再度生成する必要がある。