一開始談事務處理肯定就以為各式各樣不同的概念,java基類的繼承等東西。所以感覺很是枯燥。以
前學java的時候一談事務處理我就頭痛。呵呵。
呵呵,開始研究一下MIDlet的事務處理咯。其實以前也沒有寫過Applet,但是Servlet倒是寫得多,
畢竟MVC裡面servlet所占地位也算重要。任何一個servlet都必須要繼承javax.servlet.http.HttpServle
t類,其實作為一個MIDlet而言也是一個概念,所有的MIDlet都必須繼承javax.microedition.midlet.MID
let。說白了也就是繼承了startApp(),pauseApp(),destoryApp()這三個方法。
當一個MIDlet成功開始運行的以後也就開始了它的生命周期,這個生命周期完全有JPM控制。MIDlet
狀態轉變發生意外的時候便會拋出MIDletStateChangeException。
整個MIDP規格中,事務處理分為高級事務處理以及低級事務處理。低級事務處理根據不同的手持設備
會有不同的類庫支持,而高級事務處理則無此限制。也就是說,如果我們做的MIDlet想要在不同的機器上
都能運行我們就不能調用低級事務處理中的方法,而只能使用高級事務處理中的方法。
整個MIDP中,事務處理是由 事務<->處理方法 的一個組合形成的。
MIDP所有具有顯示能力的元件都繼承於Displayable抽象類,它又衍生出了Screen(處理高級事務處
理)與Canvas(處理低級事務處理)。MIDP中高級事務處理有兩個接口,分別是CommandListener以及Ite
mStateListener。CommandListener接口經常與javax.microedition.lcdui中的Command類一起使用。可以
看如下例子:
/**
* @author You Li
*
* CopyRight (C) 2005
*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HLEventMIDlet extends MIDlet implements CommandListener{
private Command exitCommand;
private Command info1Command;
private Command info2Command;
private Display display;
public HLEventMIDlet(){
display = Display.getDisplay(this);
exitCommand = new Command("退出", Command.SCREEN,1);//後面數字越小,優先級別
越高
info1Command = new Command("菜單1", Command.SCREEN,2);
info2Command = new Command("菜單2", Command.SCREEN,2);