|
手机端编程
手机端的编程其实是MIDlet编程。MIDlet的程序流程是这样的:构造函数→startApp()→监听事件、接收命令→commandAction()方法→调用别的方法→如果是exit()命令调用pauseApp()→destroyApp()方法。以图形表示MIDlet的生命周期如图6所示。实际上,MIDlet程序的运行流程和Applet程序的运行流程差不多。
图6 生命周期
手机端程序举例如下:
import javax.microedition.lcdui.*;//用户界面包,主要用户构建用户的程序界面。
import javax.microedition.midlet.*;//MIDlet类。
import javax.microedition.io.*;//网络IO包。
……
public class MobileMIDlet extends MIDlet implements CommandListener
{
……//一些变量的声明(略)。
MobileMIDlet()
{
myDisplay = Display.getDisplay(this) ;
}
protected void startApp() throws MIDletStateChangeException
{
……//一些变量的初始化。
myDisplay.setCurrent(funcSelected);//设置当前显示界面为用户功能选择界面(图7)
}
……
public void commandAction(Command c,Displayable d)
{
if (d == funcSelected)//用户在主界面选择。
{
switch (((List)d).getSelectedIndex())
{
case 0://用户选择了游戏功能。
myCanvas = new ClientCanvas();
myDisplay.setCurrent(myCanvas);
break;
case 1://用户选择了查询。
myDisplay.setCurrent(SearchForm);
break;
……//其它选择略。
}
}else if(d==SearchForm)
{
if(c==okCommand){//如果用户点击了发送按钮(图9)。
try{
SendAndWaitAndDisplay();
//开始发送用户填写的资料,同时显示等待界面。
一旦接收到服务器发送过来的查询结果,则分析并且在手机上显示查询。
}catch(IOException e)
{
System.out.println(“error!”);}
}
}
……//略去其它处理
}
}//class |
图7 功能选择界面 图8 手写输入 图9 提交查询
从以上程序段可以看出,手机端的程序主要是控件的部署和简单按钮动作的处理。由于手机硬件限制,手机端不可能进行复杂的操作,所以,对于数据库等类型的操作应该尽量放在服务器端处理,以减轻用户负担。
|