初学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
闽公网安备 35060202000074号