Count的计算运行的时间秒数。 点击Hide后,程序进入后台运行,在 “应用程序”中点击该程序的图标,可以发现Count的计数并不是从0开始的,而是显示刚才启动后到现在的时间。 package lab.sodino.hide; 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 HideCanvas extends Canvas implements Runnable, CommandListener { private int releaseKeyCode = 0; private int pressKeyCode = 0; private int count = 0; private boolean runnable = true; private MIDlet midlet; private Command hideCmd = new Command("Hide", Command.SCREEN, 0); public HideCanvas(MIDlet mid) { midlet = mid; runnable = true; setFullScreenMode(true); addCommand(hideCmd); setCommandListener(this); new Thread(this).start(); } protected void paint(Graphics g) { g.setColor(0); g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(0xffff00); g.drawString("Count : " + String.valueOf(count), getWidth() >> 1, (getHeight() >> 1) - 20, Graphics.HCENTER | Graphics.BOTTOM); g.drawString("Press : " + String.valueOf(pressKeyCode), getWidth() >> 1, (getHeight() >> 1), Graphics.HCENTER | Graphics.BOTTOM); g.drawString("Release : " + String.valueOf(releaseKeyCode), getWidth() >> 1, (getHeight() >> 1) + 20, Graphics.HCENTER | Graphics.BOTTOM); g.drawString(String.valueOf(Display.getDisplay(midlet).getCurrent()), getWidth() >> 1, (getHeight() >> 1) + 40, Graphics.HCENTER | Graphics.BOTTOM); // g.drawString("Hide", 0, getHeight(), Graphics.LEFT | // Graphics.BOTTOM); // g.drawString("Exit", getWidth(), getHeight(), Graphics.RIGHT // | Graphics.BOTTOM); } protected void keyReleased(int key) { releaseKeyCode = key; // repaint(); } protected void keyPressed(int key) { pressKeyCode = key; // repaint(); } public void run() { while (runnable) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } count++; repaint(0, 0, getWidth(), getHeight()); } } public void commandAction(Command c, Displayable d) { if (c == hideCmd) { Display.getDisplay(midlet).setCurrent(null); } } }