Java Tutorial/J2ME/TimerTask

Материал из Java эксперт
Перейти к: навигация, поиск

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>