package com.framsticks.util; import com.framsticks.util.dispatching.Dispatcher; import com.framsticks.util.dispatching.Task; import com.framsticks.util.dispatching.RunAt; /** * @author Piotr Sniegowski */ public abstract class PeriodicTask extends RunAt { protected final long period; protected Dispatcher dispatcher; public PeriodicTask(Dispatcher dispatcher, long period) { this.period = period; this.dispatcher = dispatcher; dispatcher.invokeLater(this); } public void again() { dispatcher.invokeLater(new Task(System.currentTimeMillis() + period) { @Override public void run() { PeriodicTask.this.run(); } }); } }