国产精品一区二区精品_久久小视频_天堂va在线观看_99久久夜色精品国产亚洲96_日本手机在线视频_av成人免费

當(dāng)前位置:首頁 > 網(wǎng)站舊欄目 > 學(xué)習(xí)園地 > 設(shè)計(jì)軟件教程 > 用一個(gè)簡單的例子來看MIDlet的生命周期原文

用一個(gè)簡單的例子來看MIDlet的生命周期原文
2010-01-13 23:30:05  作者:  來源:

用一個(gè)簡單的例子來看MIDlet 的生命周期

想來估計(jì)也沒有比網(wǎng)上教程說的更清楚了,我這里摘錄的只是文字,從www.j2medev.com來獲取,更詳細(xì)的資料可以到www.j2medev.com上查看。我將會(huì)以一個(gè)例子跟查看官方的源代碼來分析它們。

理解J2ME 的體系結(jié)構(gòu)并不像想象的那么容易,我們覺得讀更多的資料幫助也不大,我們

直接邁向J2ME 開發(fā)也許會(huì)對(duì)你理解J2ME 平臺(tái)體系結(jié)構(gòu)這個(gè)重要的概念有所幫助。在MIDP

中定義了一種新的應(yīng)用程序模型MIDlet,它是被Application Management Software(AMS)管理

的。AMS 負(fù)責(zé)MIDlet 的安裝、下載、運(yùn)行和刪除等操作。在被AMS 管理的同時(shí),MIDlet 可

以和應(yīng)用管理軟件通信通知應(yīng)用管理軟件自己狀態(tài)的變化,通常是通過方法notifyDestroyed()

和notifyPaused()實(shí)現(xiàn)的

MIDlet 有三個(gè)狀態(tài),分別是pause、active 和destroyed。在啟動(dòng)一個(gè)MIDlet 的時(shí)候,應(yīng)用

管理軟件會(huì)首先創(chuàng)建一個(gè)MIDlet 實(shí)例并使得他處于pause 狀態(tài),當(dāng)startApp()方法被調(diào)用的時(shí)候

MIDlet 進(jìn)入active 狀態(tài),也就是所說的運(yùn)行狀態(tài)。在active 狀態(tài)調(diào)用destroyApp(boolean

第1 章 J2ME 技術(shù)概述

4

unconditional)或者pauseApp()方法可以使得MIDlet 進(jìn)入destroyed 或者pause 狀態(tài)。值得一提的

是destroyApp(boolean unconditional)方法,事實(shí)上,當(dāng)destroyApp()方法被調(diào)用的時(shí)候,AMS 通

知MIDlet 進(jìn)入destroyed 狀態(tài)。在destroyed 狀態(tài)的MIDlet 必須釋放了所有的資源,并且保存了

數(shù)據(jù)。如果unconditional 為false 的時(shí)候, MIDlet 可以在接到通知后拋出

MIDletStateChangeException 而保持在當(dāng)前狀態(tài),如果設(shè)置為true 的話,則必須立即進(jìn)入destroyed

狀態(tài)。下圖說明了MIDlet 狀態(tài)改變情況:

<!--[if !vml]--><!--[endif]-->

 


看看我那個(gè)簡單的例子
public class HelloWorld extends MIDlet ......{

    public HelloWorld() ......{ 
        System.out.println("這個(gè)是程序的構(gòu)造函數(shù),程序運(yùn)行的時(shí)候首先調(diào)用這個(gè)");
    }

    protected void destroyApp(boolean unconditional)
            throws MIDletStateChangeException ......{
        System.out.println("這個(gè)是程序的destroyed事件,當(dāng)您按下退出時(shí)調(diào)用");
    }

    protected void pauseApp() ......{
        System.out.println("這個(gè)是程序的pause事件,當(dāng)您按下暫停的時(shí)調(diào)用");

    }

    protected void startApp() throws MIDletStateChangeException ......{
        System.out.println("這個(gè)是程序的active事件,程序啟動(dòng)時(shí)候調(diào)用");

    }

}

大家可以運(yùn)行程序中看到這個(gè)程序的運(yùn)行先后順些。基本上就明白了程序的調(diào)用機(jī)制了。
現(xiàn)在大家思考下,j2me的MIDlet是怎么樣運(yùn)行的呢?sun在里面進(jìn)行了什么樣子的限制與手腳呢?
一般的應(yīng)用程序都有個(gè)main入門。這里沒有,為什么呢?
我想這個(gè)就是ASM的作用了,sun在后臺(tái)做了很多處理,比如包括,啟動(dòng)容器,啟動(dòng)MIDlet相關(guān)的資源等等。

public static void main(String args[]) ...{
        CommandState state = new CommandState();

    /**//*
     * pass resource strings down to the native system menu and
     * popup choice group methods...
     */
    initSystemLabels();

        /**//*
         * We will try to handle any printing at this level, because
         * displaying JAM command line errors is device specific.
         */
        try ...{
            initializeInternalSecurity();

        /**//* Start a inbound connection watcher thread. */
        new Thread(new PushRegistryImpl()).start();

            restoreCommandState(state);

            // handle any development machine only functions at this level
            switch (state.nextCommand) ...{
            case CommandProcessor.RUN_CLASS:
                runLocalClass(state);
                state.nextCommand = CommandProcessor.EXIT;
                break;

            case CommandProcessor.MANAGE:
                manage(state);
                break;

            case CommandProcessor.LIST:
            case CommandProcessor.STORAGE_NAMES:
                list(state);
                state.nextCommand = CommandProcessor.EXIT;
                break;

            case CommandProcessor.REMOVE:
                if (DEV_STORAGE_NAME.equals(state.suiteStorageName)) ...{
                    removeDevStorage(state);
                    state.nextCommand = CommandProcessor.EXIT;
                    break;
                }

                // fall through
            default:
                CommandProcessor.perform(state);
                if (state.status == CommandProcessor.MIDLET_SUITE_NOT_FOUND) ...{
                    System.out.println("The MIDlet suite was not found.");
                } else if (state.initialCommand == CommandProcessor.INSTALL &&
                        state.status == CommandProcessor.OK) ...{
                    System.out.println("Storage name: " +
                                       state.suiteStorageName);
                }
            }
        } catch (InvalidJadException ije) ...{
            System.out.println("** Error installing suite (" +
                               ije.getReason() + "): " + 
                               messageForInvalidJadException(ije));
        } catch (IOException ioe) ...{
            System.out.println("** Error installing suite: " +
                               ioe.getMessage());
        } catch (ClassNotFoundException ex) ...{
            if (state.initialCommand == CommandProcessor.MANAGE) ...{

              state.runExceptionMessage =
                    Resource.getString("The application cannot be launched. " +
                    "One of the application classes appears to be missing. " +
                    "This could be due to a mis-named class. Contact the " +
                    "application provider to resolve the issue.");
            } else ...{
                System.out.println("MIDlet class(s) not found: " + 
                                   ex.getMessage());
            }
        } catch (InstantiationException ex) ...{
            if (state.initialCommand == CommandProcessor.MANAGE) ...{
               state.runExceptionMessage = Resource.getString(
                   "The application cannot be launched. The application " +
                   "may have done an illegal operation. Contact the " +
                   "application provider to resolve the issue.") + " " +
                   ex.getMessage();
            } else ...{
                System.out.println(
                    "MIDlet instance(s) could not be created: " + 
                                 ex.getMessage());
            }
        } catch (IllegalAccessException ex) ...{
            if (state.initialCommand == CommandProcessor.MANAGE) ...{
                state.runExceptionMessage = Resource.getString(
                   "The application cannot be launched. The application " +
                   "may have done an illegal operation. Contact the " +
                   "application provider to resolve the issue.") + " " +
                   ex.getMessage();
            } else ...{
                System.out.println(
                    "MIDlet class(s) could not be accessed: " + 
                    ex.getMessage());
            }
        } catch (OutOfMemoryError ex) ...{
            if (state.initialCommand == CommandProcessor.MANAGE) ...{
                state.runExceptionMessage = Resource.getString(
                    "The application has unexpectedly quit because it ran " +
                    "out of memory.");
            } else ...{
                System.out.println("The MIDlet has run out of memory");
   &nb

安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
国产精品一区二区精品_久久小视频_天堂va在线观看_99久久夜色精品国产亚洲96_日本手机在线视频_av成人免费
<button id="0mgmq"><pre id="0mgmq"></pre></button>
  • <tr id="0mgmq"></tr>
  • <abbr id="0mgmq"><source id="0mgmq"></source></abbr> <button id="0mgmq"></button>
  • 一区二区免费在线观看| 神马影院午夜我不卡| 欧美精品黄色| 国产精品日韩一区二区三区| 欧美午夜欧美| 欧美在线激情| 国产精品综合久久久久久| 国产欧美日韩亚洲| 中文字幕一区二区三区四区五区| 国产视频一区二区三区四区| 国产乱码精品| 在线观看欧美一区| 牛牛国产精品| 亚洲电影一二三区| 久久久久一区二区| 国产精品毛片一区视频| 久久精品人人| 国产视频一区在线观看一区免费| 午夜精品剧场| 影音先锋亚洲视频| 亚洲第一导航| 色综合电影网| 日本精品一区二区三区高清 久久| 国产91色在线|亚洲| 亚洲尤物精选| 亚洲女人av| 羞羞视频在线观看欧美| 一本久道综合久久精品| 亚洲国产日韩欧美| 亚洲福利免费| 亚洲国产专区校园欧美| 黄色国产精品一区二区三区| 欧美精品v日韩精品v国产精品| 亚洲日本japanese丝袜| 亚洲 日韩 国产第一区| 午夜视频久久久| 神马影院午夜我不卡影院| 亚洲草草视频| 一区二区视频在线免费| 欧美极品一区| 黄色国产精品一区二区三区| 亚洲性视频h| 国产欧美一区二区视频| 亚洲一区日韩在线| 久久综合一区二区三区| 成人h在线播放| 精品一区久久| 五月天亚洲综合情| 欧美日韩影院| 国产精品一区二区欧美| 男人的天堂亚洲| 国产精品毛片一区视频| 欧美日韩国产综合在线| 亚洲国产精品综合| 国内精品一区二区| 国产欧美日韩在线播放| **亚洲第一综合导航网站 | 亚洲人成影视在线观看| 影音欧美亚洲| 亚洲精品视频一区二区三区| 亚洲视频播放| 国产精品一区二区三区不卡| 久久精品五月婷婷| 亚洲精品一卡二卡三卡四卡| 中文一区一区三区免费| 在线观看视频日韩| 国产一区二区高清| 99热在线国产| 色狠狠久久av五月综合| 国产精品二区三区四区| 欧美综合国产| 欧美另类网站| 在线精品亚洲| 国产精品久久久久久久久久直播 | 欧美日韩1区2区3区| 一本久道久久综合婷婷鲸鱼| 国产aⅴ精品一区二区三区黄| 久久久久久亚洲精品不卡4k岛国| 一区二区在线观| 国产伦精品一区二区三区| 好看的日韩精品| 欧美精品成人| 99久久自偷自偷国产精品不卡| 欧美日韩一区二区视频在线| 亚洲性图久久| 国内不卡一区二区三区| 国产自产在线视频一区| 99久久精品无码一区二区毛片 | 亚洲色诱最新| 久久久国产精品一区二区三区| 欧美久久久久久| 成人精品一二区| 牛牛国产精品| 国产精品国产一区二区| 在线一区亚洲| 国产精品大全| 一区免费视频| 欧洲精品国产| 欧美一级视频| 欧美精品成人一区二区在线观看| 成人动漫视频在线观看完整版| 欧美在线网站| 国产高清自拍一区| 亚洲视频一区| 日韩妆和欧美的一区二区| 亚洲一区二区精品在线观看| 亚洲人一区二区| 国产精品区二区三区日本| 激情一区二区| 天堂av一区二区| 91在线精品观看| 伊人成人在线视频| 日韩精品欧美一区二区三区| 久久综合一区二区三区| 国语精品中文字幕| 欧美一区激情视频在线观看| 亚洲影视综合| 狠狠干综合网| 日本在线高清视频一区| 国产精品二区在线| 亚洲激情综合| 欧美精品国产一区| 欧美高清性xxxxhd| 成人综合色站| 中文精品视频| 18成人免费观看视频| 亚洲一区二区三区午夜| 精品伦理一区二区三区| 久久精品国产清高在天天线| 欧美午夜不卡| 中文字幕乱码一区二区三区| 久久一区二区三区av| 鲁大师成人一区二区三区| 在线日韩中文| 国内一区二区在线视频观看| 先锋在线资源一区二区三区| 久久综合久久久| 国产精品污www一区二区三区| 免费日韩av片| 国产视频在线观看一区| 亚洲国产高清一区二区三区| 欧美日本一区二区视频在线观看| 日韩免费电影一区二区三区| 久久本道综合色狠狠五月| 国产精品一码二码三码在线| 久久日韩精品| 久热这里只精品99re8久| 国产精品手机视频| 一区二区三区偷拍| 99精品国产一区二区青青牛奶| 国产精品国产一区二区| 午夜精品av| 欧美激情国产日韩| 国产精品国产三级国产专区53| 午夜久久tv| 好吊视频一区二区三区四区| 狠色狠色综合久久| 亚洲精品在线免费| 国产精品久久久对白| 亚洲欧美精品| 久久激情视频| 动漫一区二区在线| 精品国产一区二区三区四区精华| 蜜桃传媒视频麻豆第一区免费观看 | 日韩视频在线观看国产| 特级西西444www大精品视频| 亚洲欧美丝袜| 欧美日韩国产在线一区| 欧美日韩精品不卡| 亚洲成人资源| 亚洲中午字幕| 国产精品久久国产三级国电话系列 | 精品日本一区二区三区| 国内精品视频在线播放| 欧美少妇一区| 国产精品v亚洲精品v日韩精品| 影院欧美亚洲| 久久精品欧洲| 精品欧美日韩在线| 天天好比中文综合网| 欧美精选在线| 国产精品嫩草99av在线| 99re在线| 日韩精品一区二区三区色偷偷| 欧美一区二区三区在线免费观看 | 久久五月天婷婷| 欧美在线免费| 国产精品一区在线播放| 狠狠色噜噜狠狠色综合久| 四虎影视永久免费在线观看一区二区三区| 亚洲国产日韩欧美| 亚洲国产成人不卡| 国产成人成网站在线播放青青| 精品欧美日韩在线| 欧美精品二区| 2022国产精品| 影音欧美亚洲| 久久久久久国产精品mv| 日本精品免费| 在线视频精品|