Chinaunix首页 | 论坛 | 博客
  • 博客访问: 456814
  • 博文数量: 750
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 4970
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 12:36
文章分类

全部博文(750)

文章存档

2011年(1)

2008年(749)

我的朋友
最近访客

分类:

2008-09-09 15:19:21


  初学java的时候一般都写过如下的HelloWorld程序,今天我准备详细讲述一下J2ME中的HelloWorld。无论你是J2ME开发高手还是新手都应该读读这篇文章,我想它会对你有所帮助!
  在javax.microedition.midlet包中定义了一个非常重要的类MIDlet,所有J2ME的应用程序都必须扩展这个类,只有这样才可以使得应用管理软件(Application Management Software)管理MIDlet,包括、安装和删除。在被AMS管理的同时,MIDlet可以和应用管理软件通信通知应用管理软件自己状态的变化,通常是通过方法notifyDestroyed()和notifyPaused()实现的。最后MIDlet还可以通过getAppProperty(String name)读取在jad文件中定义的属性值。
  
  MIDlet有三个状态,分别是pause,active和destroyed。在启动一个MIDlet的时候,应用管理软件会首先创建一个MIDlet实例并使得他处于pause状态,当startApp()方法被调用的时候MIDlet进入active状态,也就是我们平时所说的运行状态。在active状态调用destroyApp(boolean unconditional)或者pauseApp()方法可以使得MIDlet进入destroyed或者pause状态。值得一提的是destroyApp(boolean unconditional)方法,很多开发者对unconditional参数不是很理解,事实上,当destroyApp()方法被调用的时候,AMS通知MIDlet进入destroyed状态。在destroyed状态的MIDlet必须释放了所有的资源,并且保存了数据。如果unconditional为false的时候,MIDlet可以在接到通知后抛出MIDletStateChangeException而保持在当前状态,如果设置为true的话,则必须立即进入destroyed状态。
  
  下面是根据上述问题我编写的一个J2ME中的HelloWorld程序,他比j2se中的helloworld要复杂一点。新手可以仔细看看。
  package com.j2medev.mingjava;
  
  import javax.microedition.midlet.MIDlet;
  import javax.microedition.midlet.MIDletStateChangeException;
  import javax.microedition.lcdui.*;
  
  public class HelloWorld extends MIDlet implements CommandListener
  {
  private Display display;
  private Form mainForm;
  private StringItem stringItem;
  private Command exitCommand = new Command("Exit", Command.EXIT, 1);
  
  public static final String WEB_SITE = "WEB_SITE";
  
  protected void startApp() throws MIDletStateChangeException
  {
  
  initMIDlet();
  display.setCurrent(mainForm);
  
  }
  
  private void initMIDlet()
  {
  display = Display.getDisplay(this);
  mainForm = new Form("Hello World");
  stringItem = new StringItem(null, null);
  String text = getAppProperty(WEB_SITE);
  stringItem.setText(text);
  mainForm.append(stringItem);
  mainForm.addCommand(exitCommand);
  mainForm.setCommandListener(this);
  }
  
  protected void pauseApp()
  {
  
  }
  
  protected void destroyApp(boolean arg0) throws MIDletStateChangeException
  {
  System.out.println("exit the application");
  }
  
  public void commandAction(Command cmd, Displayable display)
  {
  if (cmd == exitCommand)
  {
  try
  {
  destroyApp(false);
  notifyDestroyed();
  } catch (MIDletStateChangeException e)
  {
  e.printStackTrace();
  }
  }
  }
  
  }
  
  HelloWorldMIDlet.jad文件内容如下,如果你还不是很清楚jad文件请参考MIDP中的属性问题。尤其是当你在安装MIDlet到手机上的时候。
  
  MIDlet-Jar-Size: 2128
  MIDlet-1: HelloWorld,/icon.png,com.j2medev.mingjava.HelloWorld
  MIDlet-Jar-URL: HelloWorldMIDlet.jar
  MicroEdition-Configuration: CLDC-1.0
  MIDlet-Version: 1.0.0
  MIDlet-Name: HelloWorldMIDlet
  MIDlet-Vendor: www.j2medev.com
  MicroEdition-Profile: MIDP-1.0
  WEB_SITE: www.j2medev.com
  
【责编:admin】

--------------------next---------------------

阅读(286) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~