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

首頁 > 學院 > 開發設計 > 正文

J2ME入門-(9)MIDPAPI

2019-11-18 16:21:07
字體:
來源:轉載
供稿:網友

  第九章:MIDP API

介紹

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

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

UI 設計注意事項

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

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

讓我們在后面的章節里更進一步了解 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 -- 用于為后臺線程中將來要執行的任務確定時間。
· java.util.TimerTask -- 被 java.util.Timer 類使用,用來為后臺線程中稍后的執行定義任務。
· javax.microedition.io.HttpConnection -- 一個接口,為 HTTP 連接定義必要的方法和常量。
· java.lang.IllegalStateException -- 一個 RuntimeException, 指出在不合法或不合適的時間已經調用的一個方法。

MIDlet 介紹

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

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

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

在接下來的兩頁中,我們來看一個簡單的 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。它也實現 CommandListener 接口來處理事件:

public class HelloWorld extends MIDlet implements CommandListener

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

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 );

}

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

public void startApp()

{

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

Display display = Display.getDisplay(this);

display.setCurrent( form );

}

pauseApp() 被調用使得 MIDlet 處于暫停狀態。在此應用程序中,當進入暫停狀態時,我們沒執行任何操作;但是我們仍然需要在 MIDlet 中實現 pauseApp 方法,因為它是父 MIDlet 類中的抽象方法。

public void pauseApp() { }

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

public void destroyApp(boolean unconditional)

{

form = null;

}

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

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 應用程序提供訪問關于其運行所在環境信息的權限。

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

出處 中文JAVA技術網

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



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费一级片网站 | 黄片毛片一级 | 国产精品久久久久久久av | 49vv看片免费| 最新中文字幕在线视频 | 91,视频免费看 | 九九热精品在线播放 | 精品午夜影院 | 国产成人在线播放视频 | 一级黄色国产视频 | 精品在线一区二区三区 | 亚洲午夜影院在线观看 | 久久av一区二区 | 神马久久精品综合 | 成人短视频在线播放 | 黄色av网站在线观看 | 日本aⅴ在线 | 国产一级毛片在线看 | xxxx69hd一hd72| 成人在线观看一区二区 | 日韩精品久久久 | 国产1区2| 精品中文一区 | 蜜桃视频在线观看视频 | 免费一级毛片在线播放不收费 | 精品国产一区二区三区成人影院 | 久久亚洲线观看视频 | 国产精品自拍片 | 国产xxxx免费| 成人免费福利视频 | 国产精品久久久久久久久久iiiii | 亚洲一区二区在线视频 | 中文字幕极速在线观看 | 欧美一级美国一级 | 午夜精品一区二区三区免费 | 亚洲一区二区三区四区精品 | 黄色片网站免费观看 | 在线看三级 | 日韩视频在线一区二区三区 | 久草成人在线观看 | 国产免费美女 |