<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FJ2ME%2FBasics</id>
		<title>Java/J2ME/Basics - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FJ2ME%2FBasics"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/J2ME/Basics&amp;action=history"/>
		<updated>2026-04-07T07:39:03Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java/J2ME/Basics&amp;diff=7293&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/J2ME/Basics&amp;diff=7293&amp;oldid=prev"/>
				<updated>2010-06-01T06:38:08Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:38, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java/J2ME/Basics&amp;diff=7292&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/J2ME/Basics&amp;diff=7292&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Basic MIDlet Shell ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import javax.microedition.midlet.MIDlet;&lt;br /&gt;
public class BasicMIDletShell extends MIDlet {&lt;br /&gt;
  public void startApp() {&lt;br /&gt;
    System.out.println(getAppProperty(&amp;quot;Model-Version&amp;quot;));&lt;br /&gt;
  }&lt;br /&gt;
  public void pauseApp() {&lt;br /&gt;
  }&lt;br /&gt;
  public void destroyApp(boolean unconditional) {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example jad file ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIDlet-Name: Hello World&lt;br /&gt;
MIDlet-Version: 1.0&lt;br /&gt;
MIDlet-Vendor: Jim&lt;br /&gt;
MIDlet-Description: My First MIDlet suite&lt;br /&gt;
MIDlet-1: HelloWorld, /greeting/myLogo.png, greeting.HelloWorld&lt;br /&gt;
MIDlet-Jar-URL: HelloWorld.jar&lt;br /&gt;
MIDlet-Jar-Size: 1428&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example MIDlet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
J2ME in a Nutshell&lt;br /&gt;
By Kim Topley&lt;br /&gt;
ISBN: 0-596-00253-X&lt;br /&gt;
*/&lt;br /&gt;
import java.util.Timer;&lt;br /&gt;
import java.util.TimerTask;&lt;br /&gt;
import javax.microedition.midlet.MIDlet;&lt;br /&gt;
import javax.microedition.midlet.MIDletStateChangeException;&lt;br /&gt;
public class ExampleMIDlet extends MIDlet {&lt;br /&gt;
    &lt;br /&gt;
    // Flag to indicate first call to startApp&lt;br /&gt;
    private boolean started = false;&lt;br /&gt;
    &lt;br /&gt;
    // Background thread&lt;br /&gt;
    private Thread thread;&lt;br /&gt;
    &lt;br /&gt;
    // Timer interval&lt;br /&gt;
    private int timerInterval;&lt;br /&gt;
    &lt;br /&gt;
    // Timer&lt;br /&gt;
    private Timer timer;&lt;br /&gt;
    &lt;br /&gt;
    // Task to run via the timer&lt;br /&gt;
    private TimerTask task;&lt;br /&gt;
    &lt;br /&gt;
    // Required public constructor. Can be&lt;br /&gt;
    // omitted if nothing to do and no other&lt;br /&gt;
    // constructors are created.&lt;br /&gt;
    public ExampleMIDlet() {&lt;br /&gt;
        System.out.println(&amp;quot;Constructor executed&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        // Get the timer interval from the &lt;br /&gt;
        // manifest or JAD file.&lt;br /&gt;
        String interval = getAppProperty(&amp;quot;Timer-Interval&amp;quot;);&lt;br /&gt;
        timerInterval = Integer.parseInt(interval); &lt;br /&gt;
        System.out.println(&amp;quot;Timer interval is &amp;quot; + interval);&lt;br /&gt;
    }&lt;br /&gt;
        &lt;br /&gt;
    protected void startApp() throws MIDletStateChangeException {&lt;br /&gt;
        if (!started) {&lt;br /&gt;
            // First invocation. Create and start&lt;br /&gt;
            // a timer.&lt;br /&gt;
            started = true;            &lt;br /&gt;
            System.out.println(&amp;quot;startApp called for the first time&amp;quot;);&lt;br /&gt;
            startTimer();&lt;br /&gt;
        } else {&lt;br /&gt;
            // Resumed after pausing. &lt;br /&gt;
            System.out.println(&amp;quot;startApp called following pause&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // In all cases, start a background thread.&lt;br /&gt;
        synchronized (this) {&lt;br /&gt;
            if (thread == null) {&lt;br /&gt;
                thread = new Thread() {&lt;br /&gt;
                    public void run() {&lt;br /&gt;
                        System.out.println(&amp;quot;Thread running&amp;quot;);&lt;br /&gt;
                        while (thread == this) {&lt;br /&gt;
                            try {&lt;br /&gt;
                                Thread.sleep(1000);&lt;br /&gt;
                                System.out.println(&amp;quot;Thread still active&amp;quot;);&lt;br /&gt;
                            } catch (InterruptedException ex) {&lt;br /&gt;
                            }&lt;br /&gt;
                        }&lt;br /&gt;
                        System.out.println(&amp;quot;Thread terminating&amp;quot;);&lt;br /&gt;
                    }&lt;br /&gt;
                };&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        thread.start();&lt;br /&gt;
    }&lt;br /&gt;
    protected void pauseApp() {&lt;br /&gt;
        // Called from the timer task to&lt;br /&gt;
        // do whatever is necessary to &lt;br /&gt;
        // pause the MIDlet.&lt;br /&gt;
        // Tell the background thread to stop.&lt;br /&gt;
        System.out.println(&amp;quot;pauseApp called.&amp;quot;);&lt;br /&gt;
        synchronized (this) {&lt;br /&gt;
            if (thread != null) {&lt;br /&gt;
                thread = null;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    protected void destroyApp(boolean unconditional) &lt;br /&gt;
                            throws MIDletStateChangeException {&lt;br /&gt;
        // Called to destroy the MIDlet.&lt;br /&gt;
        System.out.println(&amp;quot;destroyApp called - unconditional = &amp;quot; &lt;br /&gt;
                            + unconditional);&lt;br /&gt;
        if (thread != null) {&lt;br /&gt;
            Thread bgThread = thread;&lt;br /&gt;
            thread = null;      // Signal thread to die&lt;br /&gt;
            try {&lt;br /&gt;
                bgThread.join();&lt;br /&gt;
            } catch (InterruptedException ex) {&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        stopTimer();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    // Starts a timer to run a simple task&lt;br /&gt;
    private void startTimer() {&lt;br /&gt;
        &lt;br /&gt;
        // Create a task to be run&lt;br /&gt;
        task = new TimerTask() {&lt;br /&gt;
            private boolean isPaused;&lt;br /&gt;
            private int count;&lt;br /&gt;
        &lt;br /&gt;
            public void run() {&lt;br /&gt;
                // Pause or resume the MIDlet.&lt;br /&gt;
                System.out.println(&amp;quot;Timer scheduled&amp;quot;);&lt;br /&gt;
                if (count++ == 4) {&lt;br /&gt;
                    // Terminate the MIDlet&lt;br /&gt;
                    try {&lt;br /&gt;
                        ExampleMIDlet.this.destroyApp(true);&lt;br /&gt;
                    } catch (MIDletStateChangeException ex) {&lt;br /&gt;
                        // Ignore pleas for mercy!&lt;br /&gt;
                    }&lt;br /&gt;
                    ExampleMIDlet.this.notifyDestroyed();&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
                if (isPaused) {&lt;br /&gt;
                    System.out.println(&amp;quot;&amp;gt;&amp;gt; Resuming MIDlet&amp;quot;);&lt;br /&gt;
                    ExampleMIDlet.this.resumeRequest();&lt;br /&gt;
                    isPaused = false;&lt;br /&gt;
                } else {&lt;br /&gt;
                    System.out.println(&amp;quot;&amp;gt;&amp;gt; Pausing MIDlet&amp;quot;);&lt;br /&gt;
                    isPaused = true;&lt;br /&gt;
                    ExampleMIDlet.this.pauseApp();&lt;br /&gt;
                    ExampleMIDlet.this.notifyPaused();&lt;br /&gt;
                }                &lt;br /&gt;
            }&lt;br /&gt;
        };&lt;br /&gt;
        &lt;br /&gt;
        // Create a timer and schedule it to run&lt;br /&gt;
        timer = new Timer();&lt;br /&gt;
        timer.schedule(task, timerInterval, timerInterval); &lt;br /&gt;
        System.out.println(&amp;quot;Timer started.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    // Stops the timer&lt;br /&gt;
    private void stopTimer() {&lt;br /&gt;
        if (timer != null) {&lt;br /&gt;
            System.out.println(&amp;quot;Stopping the timer&amp;quot;);&lt;br /&gt;
            timer.cancel();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Goodbye World ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
MIDlet-Name: Hello World&lt;br /&gt;
MIDlet-Version: 1.0&lt;br /&gt;
MIDlet-Vendor: Jim&lt;br /&gt;
MIDlet-Description: My First MIDlet suite&lt;br /&gt;
MIDlet-1: HelloWorld, /greeting/myLogo.png, greeting.HelloWorld&lt;br /&gt;
MIDlet-2: GoodbyeWorld, /greeting/myLogo.png, greeting.GoodbyeWorld&lt;br /&gt;
MIDlet-Jar-URL: HelloWorld.jar&lt;br /&gt;
MIDlet-Jar-Size: 4048&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
import javax.microedition.lcdui.rumand;&lt;br /&gt;
import javax.microedition.lcdui.rumandListener;&lt;br /&gt;
import javax.microedition.lcdui.Display;&lt;br /&gt;
import javax.microedition.lcdui.Displayable;&lt;br /&gt;
import javax.microedition.lcdui.TextBox;&lt;br /&gt;
import javax.microedition.midlet.MIDlet;&lt;br /&gt;
public class GoodbyeWorld extends MIDlet implements CommandListener {&lt;br /&gt;
  private Display display;&lt;br /&gt;
  private TextBox textBox = new TextBox(&amp;quot;Goodbye World&amp;quot;, &amp;quot;My second MIDlet&amp;quot;, 40, 0);&lt;br /&gt;
  private Command quitCommand = new Command(&amp;quot;Quit&amp;quot;, Command.SCREEN, 1);&lt;br /&gt;
  public void startApp() {&lt;br /&gt;
    display = Display.getDisplay(this);&lt;br /&gt;
    textBox.addCommand(quitCommand);&lt;br /&gt;
    textBox.setCommandListener(this);&lt;br /&gt;
    display.setCurrent(textBox);&lt;br /&gt;
  }&lt;br /&gt;
  public void pauseApp() {&lt;br /&gt;
  }&lt;br /&gt;
  public void destroyApp(boolean unconditional) {&lt;br /&gt;
  }&lt;br /&gt;
  public void commandAction(Command choice, Displayable displayable) {&lt;br /&gt;
    if (choice == quitCommand) {&lt;br /&gt;
      destroyApp(false);&lt;br /&gt;
      notifyDestroyed();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hello Midlet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.microedition.midlet.*;&lt;br /&gt;
import javax.microedition.lcdui.*;&lt;br /&gt;
public class HelloMidlet extends MIDlet {&lt;br /&gt;
    // The display for this MIDlet&lt;br /&gt;
    private Display display;&lt;br /&gt;
    // TextBox to display text&lt;br /&gt;
    TextBox box = null;&lt;br /&gt;
    public HelloMidlet() {&lt;br /&gt;
    }&lt;br /&gt;
    public void startApp() {&lt;br /&gt;
        display = Display.getDisplay(this);&lt;br /&gt;
        box = new TextBox(&amp;quot;Simple Example&amp;quot;, &amp;quot;Hello World&amp;quot;, 20, 0);&lt;br /&gt;
        display.setCurrent(box);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Pause is a no-op since there are no background activities or&lt;br /&gt;
     * record stores that need to be closed.&lt;br /&gt;
     */&lt;br /&gt;
    public void pauseApp() {&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Destroy must cleanup everything not handled by the garbage collector.&lt;br /&gt;
     * In this case there is nothing to cleanup.&lt;br /&gt;
     */&lt;br /&gt;
    public void destroyApp(boolean unconditional) {&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MIDlet lifecycle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * &lt;br /&gt;
 * Copyright (c) 2000 Sun Microsystems, Inc. All Rights Reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Author: Srikanth Raju&lt;br /&gt;
 *&lt;br /&gt;
 * This software is the confidential and proprietary information of Sun&lt;br /&gt;
 * Microsystems, Inc. (&amp;quot;Confidential Information&amp;quot;).  You shall not&lt;br /&gt;
 * disclose such Confidential Information and shall use it only in&lt;br /&gt;
 * accordance with the terms of the license agreement you entered into&lt;br /&gt;
 * with Sun.&lt;br /&gt;
 *&lt;br /&gt;
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE&lt;br /&gt;
 * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE&lt;br /&gt;
 * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES&lt;br /&gt;
 * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING&lt;br /&gt;
 * THIS SOFTWARE OR ITS DERIVATIVES.&lt;br /&gt;
 */&lt;br /&gt;
import javax.microedition.midlet.*;&lt;br /&gt;
import javax.microedition.lcdui.*;&lt;br /&gt;
/**&lt;br /&gt;
 * An example MIDlet with simple &amp;quot;Hello&amp;quot; text.&lt;br /&gt;
 * Refer to the startApp, pauseApp, and destroyApp&lt;br /&gt;
 * methods so see how each handles the requested transition.&lt;br /&gt;
 */&lt;br /&gt;
public class ConsoleHelloMIDlet extends MIDlet&lt;br /&gt;
{&lt;br /&gt;
    /**&lt;br /&gt;
     * Start up the Hello MIDlet.  Just write some info&lt;br /&gt;
     */&lt;br /&gt;
    public void startApp() {&lt;br /&gt;
        System.out.println( &amp;quot;\nHello Camp&amp;quot; );&lt;br /&gt;
        pauseApp();&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Pause is a no-op since there are no background activities or&lt;br /&gt;
     * record stores that need to be closed.&lt;br /&gt;
     */&lt;br /&gt;
    public void pauseApp() {&lt;br /&gt;
       System.out.println( &amp;quot;In pauseApp... &amp;quot; );&lt;br /&gt;
       destroyApp( true );&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Destroy must cleanup everything not handled by the garbage collector.&lt;br /&gt;
     * In this case there is nothing to cleanup.&lt;br /&gt;
     */&lt;br /&gt;
    public void destroyApp(boolean unconditional) {&lt;br /&gt;
       System.out.println( &amp;quot;In destroyApp... &amp;quot; );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MIDlet State Transitions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*--------------------------------------------------&lt;br /&gt;
* StateTransitions.java&lt;br /&gt;
*&lt;br /&gt;
* Example from the book:     Core J2ME Technology&lt;br /&gt;
* Copyright John W. Muchow   http://www.CoreJ2ME.ru&lt;br /&gt;
* You may use/modify for any non-commercial purpose&lt;br /&gt;
*-------------------------------------------------*/&lt;br /&gt;
import javax.microedition.midlet.*;&lt;br /&gt;
public class StateTransitions extends MIDlet&lt;br /&gt;
{&lt;br /&gt;
  public StateTransitions()&lt;br /&gt;
  {&lt;br /&gt;
    System.out.println(&amp;quot;Inside constructor()&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  // Required: called by application manager to start the MIDlet.&lt;br /&gt;
  public void startApp()&lt;br /&gt;
  {&lt;br /&gt;
    System.out.println(&amp;quot;Inside startApp()&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  // Required: called by application manager to pause the MIDlet.&lt;br /&gt;
  public void pauseApp()&lt;br /&gt;
  {&lt;br /&gt;
    System.out.println(&amp;quot;Inside pauseApp()&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  // Required: called by application manager before shutting down the MIDlet.&lt;br /&gt;
  public void destroyApp(boolean unconditional)&lt;br /&gt;
  {&lt;br /&gt;
    System.out.println(&amp;quot;Inside destroyApp()&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple Midlet Demo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.microedition.midlet.*;&lt;br /&gt;
import javax.microedition.lcdui.*;&lt;br /&gt;
public class MyMidlet extends MIDlet {&lt;br /&gt;
   public MyMidlet() { // constructor&lt;br /&gt;
   }&lt;br /&gt;
   public void startApp() {&lt;br /&gt;
      Canvas canvas = new MyCanvas();&lt;br /&gt;
      Display display = Display.getDisplay(this);&lt;br /&gt;
      display.setCurrent(canvas);&lt;br /&gt;
   }&lt;br /&gt;
   public void pauseApp() {&lt;br /&gt;
   }&lt;br /&gt;
   public void destroyApp(boolean unconditional) {&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
class MyCanvas extends Canvas {&lt;br /&gt;
   public void paint(Graphics g) {&lt;br /&gt;
      g.setColor(255, 0, 0);&lt;br /&gt;
      g.fillRect(0, 0, getWidth(), getHeight());&lt;br /&gt;
      g.setColor(255, 255, 255);&lt;br /&gt;
      g.drawString(&amp;quot;Hello World!&amp;quot;, 0, 0, g.TOP | g.LEFT);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcome Back ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*--------------------------------------------------&lt;br /&gt;
* WelcomeBack.java&lt;br /&gt;
*&lt;br /&gt;
* Example from the book:     Core J2ME Technology&lt;br /&gt;
* Copyright John W. Muchow   http://www.CoreJ2ME.ru&lt;br /&gt;
* You may use/modify for any non-commercial purpose&lt;br /&gt;
*-------------------------------------------------*/&lt;br /&gt;
import javax.microedition.midlet.*;&lt;br /&gt;
import javax.microedition.lcdui.*;&lt;br /&gt;
public class WelcomeBack extends MIDlet implements CommandListener&lt;br /&gt;
{&lt;br /&gt;
  private Display display;      // Reference to Display object for this MIDlet&lt;br /&gt;
  private List lsMain;         // A List of items&lt;br /&gt;
  private Command cmExit;      // A Command to exit the MIDlet&lt;br /&gt;
  public WelcomeBack()&lt;br /&gt;
  {&lt;br /&gt;
    display = Display.getDisplay(this);&lt;br /&gt;
    &lt;br /&gt;
    cmExit = new Command(&amp;quot;Exit&amp;quot;, Command.SCREEN, 1);&lt;br /&gt;
    lsMain = new List(&amp;quot;Welcome Back&amp;quot;, Choice.IMPLICIT);&lt;br /&gt;
    lsMain.append(&amp;quot;Core J2ME&amp;quot;, null);&lt;br /&gt;
    lsMain.addCommand(cmExit);&lt;br /&gt;
    lsMain.setCommandListener(this);&lt;br /&gt;
  }&lt;br /&gt;
  // Called by application manager to start the MIDlet.&lt;br /&gt;
  public void startApp()&lt;br /&gt;
  {&lt;br /&gt;
    display.setCurrent(lsMain);&lt;br /&gt;
  }&lt;br /&gt;
  // A required method&lt;br /&gt;
  public void pauseApp()&lt;br /&gt;
  { }&lt;br /&gt;
  // A required method&lt;br /&gt;
  public void destroyApp(boolean unconditional)&lt;br /&gt;
  { }&lt;br /&gt;
  // Check to see if our Exit command was selected&lt;br /&gt;
  public void commandAction(Command c, Displayable s)&lt;br /&gt;
  {&lt;br /&gt;
    if (c == cmExit)&lt;br /&gt;
    {&lt;br /&gt;
      destroyApp(false);&lt;br /&gt;
      notifyDestroyed();&lt;br /&gt;
    } &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Welcome MIDlet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*--------------------------------------------------&lt;br /&gt;
* WelcomeMIDlet.java&lt;br /&gt;
*&lt;br /&gt;
* Example from the book:     Core J2ME Technology&lt;br /&gt;
* Copyright John W. Muchow   http://www.CoreJ2ME.ru&lt;br /&gt;
* You may use/modify for any non-commercial purpose&lt;br /&gt;
*-------------------------------------------------*/&lt;br /&gt;
import javax.microedition.midlet.*;&lt;br /&gt;
import javax.microedition.lcdui.*;&lt;br /&gt;
public class WelcomeMIDlet extends MIDlet implements CommandListener&lt;br /&gt;
{&lt;br /&gt;
  private Display display;      // Reference to Display object for this MIDlet&lt;br /&gt;
  private TextBox tbMain;      // A Textbox to display a message&lt;br /&gt;
  private Command cmExit;      // A Command to exit the MIDlet&lt;br /&gt;
  public WelcomeMIDlet()&lt;br /&gt;
  {&lt;br /&gt;
    display = Display.getDisplay(this);&lt;br /&gt;
    &lt;br /&gt;
    cmExit = new Command(&amp;quot;Exit&amp;quot;, Command.SCREEN, 1);&lt;br /&gt;
    &lt;br /&gt;
    tbMain = new TextBox(&amp;quot;Welcome&amp;quot;, &amp;quot;Core J2ME&amp;quot;, 50, 0);&lt;br /&gt;
    tbMain.addCommand(cmExit);&lt;br /&gt;
    tbMain.setCommandListener(this);&lt;br /&gt;
  }&lt;br /&gt;
  // Called by application manager to start the MIDlet.&lt;br /&gt;
  public void startApp()&lt;br /&gt;
  {&lt;br /&gt;
    display.setCurrent(tbMain);&lt;br /&gt;
  }&lt;br /&gt;
  // A required method&lt;br /&gt;
  public void pauseApp()&lt;br /&gt;
  { }&lt;br /&gt;
  // A required method&lt;br /&gt;
  public void destroyApp(boolean unconditional)&lt;br /&gt;
  { }&lt;br /&gt;
  // Check to see if our Exit command was selected&lt;br /&gt;
  public void commandAction(Command c, Displayable s)&lt;br /&gt;
  {&lt;br /&gt;
    if (c == cmExit)&lt;br /&gt;
    {&lt;br /&gt;
      destroyApp(false);&lt;br /&gt;
      notifyDestroyed();&lt;br /&gt;
    } &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>