精通J2ME中的Hello World
2008-01-05 20:19:57 来源:WEB开发网初学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到手机上的时候。
- ››精通Photoshop之通道详解
- ››Hello World Android 应用程序:补充内容
- ››精通 Grails: 使用 Grails 进行单元测试(单元测试...
- ››精通 Grails: 创建自定义插件
- ››精通 Grails: 在企业中使用 Grails
- ››精通 Grails: Grails 与移动 Web
- ››精通 Grails: Grails 与遗留数据库
- ››精通 Grails: RESTful Grails
- ››精通 Grails: 用 JSON 和 Ajax 实现异步 Grails
- ››精通 Grails: 用定制 URI 和 codec 优化 Grails 中...
- ››精通 Grails: 身份验证和授权
- ››精通 Grails: 文件上传和 Atom 联合
更多精彩
赞助商链接