麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發(fā)設計 > 正文

J2ME入門-(9)MIDPAPI

2019-11-18 16:21:07
字體:
供稿:網(wǎng)友

  第九章:MIDP API

介紹

移動信息設備簡表 (MIDP) 適合類似于蜂窩電話和尋呼機這樣的設備。MIDP,就象 Kjava 一樣,同樣也建立在 CLDC 之上。MID 簡表提供一種標準的運行時環(huán)境,允許在終端用戶設備上動態(tài)地配置新的應用程序和服務。

在本章中,我們將詳細地討論 MID 定義的七個軟件包。我們還將建立一個 MIDP 應用程序示例。

UI 設計注意事項

MIDP 包括一個低級的 UI API 和一個高級的 UI API。低級的 API 允許您完全訪問一個設備的顯示屏,也允許訪問原始鍵和指針事件。然而,使用低級 API 時, 沒有可用的用戶界面控件。應用程序必須精確地繪制出按鈕和其它所有的控件。

相反,高級 API 提供簡單的用戶界面控件但不能直接訪問原始的輸入事件或顯示屏。由于顯示屏的尺寸和 MIDP 設備輸入方法的差異,控件顯得很抽象。MIDP 的實現(xiàn)確定了繪制控件的方法,也確定了如何管理用戶輸入。

讓我們在后面的章節(jié)里更進一步了解 MIDP 的軟件包和類。

MIDP API

MIDP 包含四個核心 CLDC 軟件包 (java.lang、java.io、java.util 和 javax.microedition.io),另加下面的三個特定于 MIDP 的軟件包:

· javax.microedition.lcdui

· javax.microedition.midlet

· javax.microedition.rms

我們將在本章的后面部分詳細介紹特定于 MIDP 軟件包。除了上面新的軟件包之外,MIDP 還向核心 CLDC 軟件包添加了四個新類,如下所示。

· java.util.Timer -- 用于為后臺線程中將來要執(zhí)行的任務確定時間。
· java.util.TimerTask -- 被 java.util.Timer 類使用,用來為后臺線程中稍后的執(zhí)行定義任務。
· javax.microedition.io.HttpConnection -- 一個接口,為 HTTP 連接定義必要的方法和常量。
· java.lang.IllegalStateException -- 一個 RuntimeException, 指出在不合法或不合適的時間已經(jīng)調(diào)用的一個方法。

MIDlet 介紹

MIDlet 是一個 Java 類,它擴展了 javax.microedition.midlet.MIDlet 抽象類。實現(xiàn) startApp()、pauseApp()和 destroyApp()方法,這些方法類似于 J2SE 的 java.applet.Applet 類中的 start()、stop()和 destroy()方法。

除了擴充 javax.microedition.midlet.MIDlet 的主 MIDlet 類之外,一個 MIDP 應用程序通常還包括其它一些類,這些類能隨它們的資源一起被打包成為 jar 文件 -- 稱之為 MIDlet 套件。一個 MIDlet 套件中的不同 MIDlet 能共享 jar 文件的資源,盡管不同套件中的 MIDlets 不能直接相互作用。

MIDlet 在應用程序生命周期中有三種可能的存在狀態(tài) -- 運行狀態(tài)、暫停狀態(tài)、銷毀狀態(tài)。運行狀態(tài),正如其名稱所暗示的,意味著 MIDlet 正在運行中。這種狀態(tài)始于 startApp 方法被調(diào)用時。在暫停狀態(tài)中,MIDlet 持有的所有資源將被釋放,但是它準備著再次被運行。調(diào)用 notifyPaused 方法時,MIDlet 處于暫停狀態(tài)。在銷毀狀態(tài)中,MIDlet 已經(jīng)永久地將其自身關閉,釋放所有的資源,等待著廢物清理程序的處理。它是通過 notifyDestroyed 方法來調(diào)用的。

在接下來的兩頁中,我們來看一個簡單的 HelloWorld MIDlet。

HelloWorld MIDlet

與使用 KJava HelloWorld 應用程序一樣,這個 MIDlet 也會在 MIDP 設備的顯示屏上顯示 "Hello World!" 和 Exit 按鈕,按下該按鈕會終止應用程序。

HelloWorld.java 文件以下面的代碼行開始,這些代碼行導入稍后會在 HelloWorld 類中使用的類:

import javax.microedition.midlet.MIDlet;

import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.Displayable;

import javax.microedition.lcdui.Form;

由于 HelloWorld 類是一個 MIDP 應用程序,它擴展了 MIDlet。它也實現(xiàn) CommandListener 接口來處理事件:

public class HelloWorld extends MIDlet implements CommandListener

下面的方法是一個缺省構造程序,它創(chuàng)建一個新表單,在上面初始化控件,然后顯示出來:

PRivate Form form;

public HelloWorld()

{

// Create a new form on which to display our text

form = new Form("Test App");

// Add the text "Hello World!" to the form

form.append("Hello World!");

// Add a command button labeled "Exit"

form.addCommand( new Command( "Exit", Command.EXIT, 1 ) );

// Register this object as a commandListener

form.setCommandListener( this );

}

調(diào)用 startApp() 方法啟動應用程序與小應用程序的啟動方法很象。
在 MIDle 的一次執(zhí)行中它可能會被調(diào)用多次。如果 MIDlet 暫停,pauseApp() 將會被調(diào)用。要重新啟動 MIDlet,需調(diào)用 startApp()。僅須執(zhí)行一次的主初始化代碼應該放置在構造程序中:

public void startApp()

{

// Get a reference to the display, and show the form

Display display = Display.getDisplay(this);

display.setCurrent( form );

}

pauseApp() 被調(diào)用使得 MIDlet 處于暫停狀態(tài)。在此應用程序中,當進入暫停狀態(tài)時,我們沒執(zhí)行任何操作;但是我們?nèi)匀恍枰?MIDlet 中實現(xiàn) pauseApp 方法,因為它是父 MIDlet 類中的抽象方法。

public void pauseApp() { }

destroyApp() 被調(diào)用,破壞了 MIDlet 并使其處于銷毀狀態(tài)。在此應用程序中,我們通過將引用設為 null,釋放了對表單的引用。

public void destroyApp(boolean unconditional)

{

form = null;

}

commandAction() 方法是事件處理程序,被請求實現(xiàn) CommandListener 接口。目前,它破壞了應用程序并通知應用程序管理軟件 MIDlet 已經(jīng)完成。

public void commandAction(Command c, Displayable d)

{

// Destroy this MIDlet

destroyApp(true);

// Notify the application management software that this MIDlet

// has entered the destroyed state

notifyDestroyed();

}

 

MIDP 軟件包

除標準 CLDC 軟件包之外,MIDP 還包含三個附加的軟件包:

· javax.microedition.lcdui -- 定義用來控制 UI 的類。這個軟件包既包含高級 UI 類(例如 Form、Command、DateField 和 TextField 等),又包含低級 UI 類(允許用低級方式控制 UI)。

· javax.microedition.midlet -- 包含 MIDP 主類中的一個,MIDlet 類,為 MIDP 應用程序提供訪問關于其運行所在環(huán)境信息的權限。

javax.microedition.rms -- 定義一個類的集合,這些類為 MIDlet 提供了永久存儲并隨后重新得到數(shù)據(jù)的機制。

出處 中文JAVA技術網(wǎng)

(出處:http://www.companysz.com)



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美成人精品欧美一级乱黄 | 日韩精品免费一区二区三区 | 日韩一级片一区二区三区 | 手机av免费电影 | 国产91av视频| 精品国产一区二区三区四区在线 | 看一级毛片 | h色在线观看 | 国产欧美亚洲精品a | 天天都色视频 | 久久久精品综合 | 国产成人在线免费观看视频 | 正在播放91视频 | 日韩一级电影在线观看 | 成人在线免费观看小视频 | 欧美色淫| 在线成人免费观看视频 | 成人免费观看在线视频 | 成人综合一区二区 | vidz 98hd| 宅男噜噜噜66国产免费观看 | 国产精品午夜在线 | 亚洲天堂中文字幕在线观看 | 精品久久久久久久久亚洲 | 午夜伦情电午夜伦情电影 | 久久精品一区二区三 | 黄色片网站在线免费观看 | 91网站链接| 亚洲国产色婷婷 | 国产亚洲高清视频 | 久久网页 | 一级网站 | 国产成人精品午夜视频' | 欧美在线 | 亚洲 | 国产精品亚洲精品久久 | 国产欧美在线一区二区三区 | 成年免费网站 | 九九热精 | 一级做a爱片毛片免费 | 日本在线观看一区二区 | 天堂在线中文资源 |