Java Tutorial/J2ME/TimerTask
Cancel a timer task
<source lang="java">
import java.util.Timer; import java.util.TimerTask; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.TextBox; import javax.microedition.midlet.MIDlet; public class SimpleTimerCancelMIDlet extends MIDlet implements CommandListener {
private Command exitCommand = new Command("Exit", Command.EXIT, 1); private Command scheduleCommand = new Command("schedule", Command.SCREEN, 1); private TextBox aTextBox = new TextBox("Setting", "Content", 20, 0); public static String aMessage = ""; Display display; private Timer aTimer; private SimpleTimerTask aTimerTask; public SimpleTimerCancelMIDlet() { Display display = Display.getDisplay(this); } public void startApp() { aTextBox.addCommand(exitCommand); aTextBox.addCommand(scheduleCommand); aTextBox.setCommandListener(this); display.setCurrent(aTextBox); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { if (c == scheduleCommand) { aTimer = new Timer(); aTimerTask = new SimpleTimerTask(); aTimer.schedule(aTimerTask, 500); aTextBox.setString(aMessage); } else if (c == exitCommand) { destroyApp(false); notifyDestroyed(); } }
} class SimpleTimerTask extends TimerTask {
public final void run() { cancel(); }
}</source>
extends TimerTask
<source lang="java">
import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Graphics; import javax.microedition.midlet.MIDlet; public class J2MEFixedRateSchedule extends MIDlet {
private Timer aTimer; private ClockTimerTask aTimerTask; Displayable d = new ClockCanvas(); private Date currentTime= new Date(); private Calendar now = Calendar.getInstance(); private String nowString = ""; public void startApp() { d.addCommand(new Command("Exit", Command.EXIT, 0)); d.setCommandListener(new CommandListener() { public void commandAction(Command c, Displayable s) { notifyDestroyed(); } }); now.setTime(currentTime); nowString = now.get(Calendar.HOUR) + ":" + now.get(Calendar.MINUTE) + ":" + now.get(Calendar.SECOND) + ":"; aTimer = new Timer(); aTimerTask = new ClockTimerTask(); aTimer.scheduleAtFixedRate(aTimerTask, 10, 1000); Display.getDisplay(this).setCurrent(d); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } class ClockCanvas extends Canvas { public void paint(Graphics g) { int width = getWidth(); int height = getHeight(); g.setGrayScale(255); g.fillRect(0, 0, width - 1, height - 1); g.setGrayScale(0); g.drawRect(0, 0, width - 1, height - 1); g.drawString(nowString, 10, 10, Graphics.TOP | Graphics.LEFT); } } class ClockTimerTask extends TimerTask { public final void run() { currentTime = new Date(); now = Calendar.getInstance(); now.setTime(currentTime); nowString = now.get(Calendar.HOUR) + ":" + now.get(Calendar.MINUTE) + ":" + now.get(Calendar.SECOND) + ":"; ((ClockCanvas) d).repaint(); } }
}</source>