深入理解MIDlet類

2021-04-02 10:11:40 字數 3337 閱讀 5253

深入理解

midlet

類出自:

在j2me

程式設計過程中,

midlet

是最核心的類之一,熟悉該類的使用是

j2me

學習過程中必須首先掌握的類,下面就結合實際介紹一下該類的實際使用。

眾所周知,

j2me

程式都是從

midlet

類開始執行,系統規定了

midlet

的生命週期。規定

midlet

程式有三種狀態:

1、暫停狀態

2、執行狀態

3、銷毀狀態

系統在執行

midlet

程式時,首先構造乙個

midlet

型別的物件,然後使程式進入到暫停狀態,按照生命週期的規定,系統會自動呼叫

midlet

物件的方法使程式進入到執行狀態,開始程式的執行。如果在建立

midlet

物件的過程中,或者是呼叫

的方法中發生了異常,則系統會自動呼叫

midlet

物件的方法進行到銷毀狀態,也就是使程式退出。

所以生命週期中的第乙個需要注意的地方就是熟悉在以上狀態轉換過程中,系統會自動呼叫的方法,然後在實際編寫

midlet

類的時候,在這些方法中書寫合適的**,這樣就可以在系統規定的狀態轉換時,自動呼叫這些方法。

另外乙個需要說明的狀態是暫停狀態,系統在程式執行過程中,如果手機有來電,則系統會自動的使

midlet

程式進行到暫停狀態,在進入到暫停狀態以前,系統會自動呼叫

midlet

物件的方法。當**接聽完畢以後,系統會自動使

midlet

程式進行到執行狀態,在進入到執行狀態以前,系統還會自動呼叫

方法使系統進入到執行狀態。

對於上面的內容做乙個簡單的總結:

1、方法

在系統第一次執行的時候,系統會自動呼叫該方法使系統進入到執行狀態。

當系統從暫停狀態切換到執行狀態以前,系統也會自動呼叫該方法。

2、方法

當系統從執行狀態切換到暫停狀態以前,會自動呼叫該方法。

3、方法

當系統發生異常退出程式以前,會自動呼叫該方法。該方法有乙個

boolean

型別的引數,如果該引數為

true

則代表該方法必須清理和釋放資源,如果為

false

可以丟擲乙個

midletstatechangeexception

異常來表明它不想立即退出。

熟悉了這幾個方法的使用以後,可以實現很多實用的功能,下面介紹兩個實際功能的實現:

1、實現來**時暫停的功能

在實際的

midlet

程式設計中,必須實現手機來電時暫停程式的功能,如果有執行緒時,還需要把執行緒停止掉,然後當**結束以後,重新顯示介面,並重新啟動執行緒。

方法的具體的實現**框架如下:

//獲得當前顯示的介面

displayable curr = display.getcurrent();

//判斷是否是第一次執行

if(curr == null)else

}如果遊戲介面中有執行緒,則需要在來電時暫停執行緒,而

在暫停以前會被系統呼叫,所以可以在

方法中實現該功能。

方法的實現**框架如下:

//獲得當前顯示的介面

displayable curr = display.getcurrent();

//判斷是否是遊戲介面

if(curr instanceof gamecanvas)}2、

實現按掛機時清理的功能

熟悉midlet

程式設計的人都知道,在程式執行過程中按掛機鍵,可以使

midlet

程式退出,在低階使用者介面程式設計中,可以在

keypressed

方法中捕獲該事件,但是卻無法處理,因為捕獲以後,程式就直接退出了。

如果遊戲中有背景**等,則當按掛機鍵直接退出的時候,**還會存在,這樣就會造成很多的問題。但是按掛機鍵以後,在程式退出以前,系統會自動呼叫

方法,所以可以把最後處理的**放置在

方法中。

下面接著來看一下另一組方法,來繼續熟悉

midlet

類的使用:

1、notifypaused

使程式進入暫停狀態

2、notifydestroyed

是程式進入到銷毀狀態。

以上兩個方法和上面的三個方法不同,上面的三個方法是在狀態切換過程中,會自動被系統呼叫。而這兩個方法不會被系統自動呼叫,但是程式設計師在實際程式設計過程中可以手動呼叫這兩個方法,使程式進入指定的狀態。

比如如果想實現程式退出的功能,就只需要使

midlet

程式進入到銷毀狀態即可,也就是只需要手動呼叫

notifydestroyed

方法即可。

上面是midlet

類中最主要的兩組方法,下面分

midp1.0

和midp2.0

來分別介紹剩下的方法的作用。首先看一下

midp1.0

中的兩個方法:

1、獲得

jad檔案和

manifest

檔案中屬性的值,如果乙個屬性在以上兩個檔案中都包含,則以

jad檔案中的屬性值為準。

2、resumerequest

系統通過呼叫該軟體來判斷是否需要使該

midlet

進入執行狀態。如果需要進入執行狀態,則系統會自動呼叫

方法。在

midp2.0

中,midlet

類中新增了兩個方法,下面介紹一下這兩個方法的作用,依次是:

1、checkpermission

該方法是

midp2.0

的安全許可機制,在程式的實際使用過程中,可以通過該方法來檢查

midlet

是否允許特定的操作,例如聯網、傳送簡訊息等等。

如果不允許該操作則返回

0,允許返回

1,未定義則返回-1。

2、platformrequest

使用該方法可以訪問某些系統功能,例如通用的功能主要有兩種

使系統開啟瀏覽器訪問某個特定的**:

使手機撥打特定的**號碼:

paltformrequest(「tel:1860」);

則系統會自動利用手機來撥打

1860

。由於作者水平有限,不足之處請海涵和指正。

Java String類深入理解

在這裡主要說一些string類的細節,易忽略的點,以及面試題 string s1 abc s1是乙個類型別變數,abc 是乙個物件。s1 ab 新建立了乙個物件,s1指向這個物件,原來的 abc 還在堆記憶體中。string s2 new string abc 不使用!建立了兩個物件 string ...

深入理解Python類

c 中,類有兩個關鍵的內建函式,建構函式和析構函式。在python中,其實也有類似的函式,他們就是 def init self pass def del self pass def enter self pass def exit self pass在物件建立時執行操作。在物件析構時執行操作。注意 ...

深入理解String類

string類代表的就是字串,string類物件建立之後不可變。string str hello 方式1 string str2 newstring hello 方式2 char array 方式3 string str3 newstring array string str1 hello stri...