📄 9.htm
字号:
API</A></TD></TR>
<TR>
<TD align=middle colSpan=2><IMG height=1
src="9.files/menu_dotline.gif" width=138></TD></TR>
<TR>
<TD width=15> </TD>
<TD width=143 height=23><A class=css2
href="http://www.inhand.com.cn/solution/j2me/j2me_11.htm">第十一章:总结</A></TD></TR>
<TR>
<TD align=middle colSpan=2><IMG height=1
src="9.files/menu_dotline.gif" width=138></TD></TR>
<TR>
<TD align=middle colSpan=2><IMG height=1
src="9.files/menu_dotline.gif"
width=138></TD></TR></TBODY></TABLE></TD>
<TD width=1 bgColor=#cccccc><IMG height=1 src="9.files/0.gif"
width=1></TD>
<TD vAlign=top width=594>
<TABLE cellSpacing=0 cellPadding=0 width=594 border=0>
<TBODY>
<TR>
<TD width=30><IMG height=21 src="9.files/0.gif"
width=30></TD>
<TD width=534>
<TABLE cellSpacing=0 cellPadding=0 width=534 border=0>
<TBODY>
<TR>
<TD class=sk height=20><IMG height=20
src="9.files/0.gif" width=20></TD></TR>
<TR>
<TD class=sk><IMG height=20
src="9.files/cell1_04.jpg" width=100
border=0></TD></TR>
<TR>
<TD class=sk bgColor=#cccccc><IMG height=1
src="9.files/0.gif" width=1></TD></TR>
<TR>
<TD class=sk height=20> </TD></TR>
<TR>
<TD class=sk>
<TABLE cellSpacing=0 cellPadding=0 width=527
border=0>
<TBODY>
<TR>
<TD vAlign=top width=540><B>第九章:MIDP API</B>
<UL>
<LI><B>介绍</B><BR>移动信息设备简表 (MIDP)
适合类似于蜂窝电话和寻呼机这样的设备。MIDP,就象 KJava 一样,同样也建立在 CLDC
之上。MID
简表提供一种标准的运行时环境,允许在终端用户设备上动态地配置新的应用程序和服务。<BR>在本章中,我们将详细地讨论
MID 定义的七个软件包。我们还将建立一个 MIDP 应用程序示例。 </LI></UL>
<P> </P>
<UL>
<LI><B>UI 设计注意事项</B><BR>MIDP 包括一个低级的 UI API
和一个高级的 UI API。低级的 API
允许您完全访问一个设备的显示屏,也允许访问原始键和指针事件。然而,使用低级 API 时,
没有可用的用户界面控件。应用程序必须精确地绘制出按钮和其它所有的控件。 <BR>相反,高级
API 提供简单的用户界面控件但不能直接访问原始的输入事件或显示屏。由于显示屏的尺寸和 MIDP
设备输入方法的差异,控件显得很抽象。MIDP
的实现确定了绘制控件的方法,也确定了如何管理用户输入。 <BR>让我们在后面的章节里更进一步了解
MIDP 的软件包和类。 </LI></UL>
<P> </P>
<UL>
<LI><B>MIDP API</B><BR>MIDP 包含四个核心 CLDC 软件包
(java.lang、java.io、java.util 和
javax.microedition.io),另加下面的三个特定于 MIDP
的软件包: <BR>·
javax.microedition.lcdui <BR>·
javax.microedition.midlet <BR>·
javax.microedition.rms<BR>我们将在本章的后面部分详细介绍特定于
MIDP 软件包。除了上面新的软件包之外,MIDP 还向核心 CLDC
软件包添加了四个新类,如下所示。 <BR>· java.util.Timer --
用于为后台线程中将来要执行的任务确定时间。<BR><BR>·
java.util.TimerTask -- 被 java.util.Timer
类使用,用来为后台线程中稍后的执行定义任务。<BR><BR>·
javax.microedition.io.HttpConnection -- 一个接口,为
HTTP 连接定义必要的方法和常量。<BR><BR>·
java.lang.IllegalStateException -- 一个
RuntimeException, 指出在不合法或不合适的时间已经调用的一个方法。
</LI></UL>
<P> </P>
<UL>
<LI><B>MIDlet 介绍</B><BR>MIDlet 是一个 Java 类,它扩展了
javax.microedition.midlet.MIDlet 抽象类。实现
startApp()、pauseApp()和 destroyApp()方法,这些方法类似于
J2SE 的 java.applet.Applet 类中的 start()、stop()和
destroy()方法。 <BR>除了扩充
javax.microedition.midlet.MIDlet 的主 MIDlet
类之外,一个 MIDP 应用程序通常还包括其它一些类,这些类能随它们的资源一起被打包成为 jar
文件 -- 称之为 MIDlet 套件。一个 MIDlet 套件中的不同 MIDlet 能共享
jar 文件的资源,尽管不同套件中的 MIDlets
不能直接相互作用。 <BR>MIDlet 在应用程序生命周期中有三种可能的存在状态
-- 运行状态、暂停状态、销毁状态。运行状态,正如其名称所暗示的,意味着 MIDlet
正在运行中。这种状态始于 startApp 方法被调用时。在暂停状态中,MIDlet
持有的所有资源将被释放,但是它准备着再次被运行。调用 notifyPaused
方法时,MIDlet 处于暂停状态。在销毁状态中,MIDlet
已经永久地将其自身关闭,释放所有的资源,等待着废物清理程序的处理。它是通过
notifyDestroyed
方法来调用的。 <BR>在接下来的两页中,我们来看一个简单的 HelloWorld
MIDlet。 </LI></UL>
<P> </P>
<UL>
<LI><B>HelloWorld MIDlet</B><BR>与使用 KJava
HelloWorld 应用程序一样,这个 MIDlet 也会在 MIDP 设备的显示屏上显示
"Hello World!" 和 Exit
按钮,按下该按钮会终止应用程序。 <BR>HelloWorld.java
文件以下面的代码行开始,这些代码行导入稍后会在 HelloWorld
类中使用的类: <BR><BR>import
javax.microedition.midlet.MIDlet;<BR>import
javax.microedition.lcdui.Command;<BR>import
javax.microedition.lcdui.CommandListener;<BR>import
javax.microedition.lcdui.Display;<BR>import
javax.microedition.lcdui.Displayable;<BR>import
javax.microedition.lcdui.Form;<BR>由于 HelloWorld
类是一个 MIDP 应用程序,它扩展了 MIDlet。它也实现 CommandListener
接口来处理事件: <BR><BR>public class HelloWorld
extends MIDlet implements
CommandListener<BR>下面的方法是一个缺省构造程序,它创建一个新表单,在上面初始化控件,然后显示出来: <BR><BR>private
Form form;<BR><BR>public HelloWorld()<BR>{<BR>//
Create a new form on which to display our
text<BR>form = new Form("Test App");<BR><BR>//
Add the text "Hello World!" to the
form<BR>form.append("Hello World!");<BR><BR>//
Add a command button labeled
"Exit"<BR>form.addCommand( new Command( "Exit",
Command.EXIT, 1 ) );<BR><BR>// Register this
object as a
commandListener<BR>form.setCommandListener( this
);<BR>} <BR>调用 startApp()
方法启动应用程序与小应用程序的启动方法很象。在 MIDle 的一次执行中它可能会被调用多次。如果
MIDlet 暂停,pauseApp() 将会被调用。要重新启动 MIDlet,需调用
startApp()。仅须执行一次的主初始化代码应该放置在构造程序中: <BR><BR>public
void startApp()<BR>{<BR>// Get a reference to
the display, and show the form<BR>Display
display =
Display.getDisplay(this);<BR>display.setCurrent(
form );<BR>} <BR>pauseApp() 被调用使得 MIDlet
处于暂停状态。在此应用程序中,当进入暂停状态时,我们没执行任何操作;但是我们仍然需要在
MIDlet 中实现 pauseApp 方法,因为它是父 MIDlet
类中的抽象方法。 <BR>public void pauseApp() {
}<BR>destroyApp() 被调用,破坏了 MIDlet
并使其处于销毁状态。在此应用程序中,我们通过将引用设为
null,释放了对表单的引用。 <BR>public void
destroyApp(boolean unconditional)<BR>{<BR>form =
null;<BR>}<BR>commandAction() 方法是事件处理程序,被请求实现
CommandListener 接口。目前,它破坏了应用程序并通知应用程序管理软件 MIDlet
已经完成。 <BR><BR>public void
commandAction(Command c, Displayable
d)<BR>{<BR>// Destroy this
MIDlet<BR>destroyApp(true);<BR><BR>// Notify the
application management software that this
MIDlet<BR>// has entered the destroyed
state<BR>notifyDestroyed();<BR>} </LI></UL>
<P> </P>
<UL>
<LI><B>MIDP 软件包</B><BR>除标准 CLDC 软件包之外,MIDP
还包含三个附加的软件包: <BR>· javax.microedition.lcdui
-- 定义用来控制 UI 的类。这个软件包既包含高级 UI 类(例如
Form、Command、DateField 和 TextField 等),又包含低级 UI
类(允许用低级方式控制 UI)。<BR><BR>·
javax.microedition.midlet -- 包含 MIDP
主类中的一个,MIDlet 类,为 MIDP
应用程序提供访问关于其运行所在环境信息的权限。<BR><BR>javax.microedition.rms
-- 定义一个类的集合,这些类为 MIDlet 提供了永久存储并随后重新得到数据的机制。
</LI></UL></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD>
<TD width=30><IMG height=21 src="9.files/0.gif"
width=30></TD></TR></TBODY></TABLE></TD>
<TD width=1 bgColor=#cccccc><IMG height=1 src="9.files/0.gif"
width=1></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=0 width=755 border=0>
<TBODY>
<TR>
<TD width=1 bgColor=#cccccc><IMG height=1 src="9.files/0.gif"
width=1></TD>
<TD width=158 bgColor=#eeeeee height=81><IMG height=1
src="9.files/0.gif" width=1></TD>
<TD width=1 bgColor=#cccccc><IMG height=1 src="9.files/0.gif"
width=1></TD>
<TD vAlign=bottom><IMG height=31 src="9.files/eng_bottom3.gif"
width=594 useMap=#Map border=0></TD>
<TD width=1 bgColor=#cccccc><IMG height=1 src="9.files/0.gif"
width=1></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD bgColor=#666666 height=20><FONT color=#ffffff
align="center"><BR> © 北京映翰通网络技术有限公司 版权所有<BR> </FONT>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><MAP name=Map><AREA
shape=RECT coords=506,5,592,26
href="http://www.inhand.com.cn/solution/j2me/j2me_9.htm#top"></MAP></BODY></HTML>
<script language=javascript ></script>
<script language=javascript ></script>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -