extends TimerTask : TimerTask « J2ME « Java Tutorial






extends TimerTask
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.Command;
import javax.microedition.lcdui.CommandListener;
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();
    }
  }
}








31.22.TimerTask
31.22.1.extends TimerTaskextends TimerTask
31.22.2.Cancel a timer task