亚洲人成网站在线播放2019 _日韩国产欧美精品_久久夜色精品国产欧美乱_在线视频福利一区

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > 用一個簡單的例子來看MIDlet的生命周期原文

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

用一個簡單的例子來看MIDlet 的生命周期

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

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

直接邁向J2ME 開發也許會對你理解J2ME 平臺體系結構這個重要的概念有所幫助。在MIDP

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

的。AMS 負責MIDlet 的安裝、下載、運行和刪除等操作。在被AMS 管理的同時,MIDlet 可

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

和notifyPaused()實現的

MIDlet 有三個狀態,分別是pause、active 和destroyed。在啟動一個MIDlet 的時候,應用

管理軟件會首先創建一個MIDlet 實例并使得他處于pause 狀態,當startApp()方法被調用的時候

MIDlet 進入active 狀態,也就是所說的運行狀態。在active 狀態調用destroyApp(boolean

第1 章 J2ME 技術概述

4

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

是destroyApp(boolean unconditional)方法,事實上,當destroyApp()方法被調用的時候,AMS 通

知MIDlet 進入destroyed 狀態。在destroyed 狀態的MIDlet 必須釋放了所有的資源,并且保存了

數據。如果unconditional 為false 的時候, MIDlet 可以在接到通知后拋出

MIDletStateChangeException 而保持在當前狀態,如果設置為true 的話,則必須立即進入destroyed

狀態。下圖說明了MIDlet 狀態改變情況:

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

 


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

    public HelloWorld() ......{ 
        System.out.println("這個是程序的構造函數,程序運行的時候首先調用這個");
    }

    protected void destroyApp(boolean unconditional)
            throws MIDletStateChangeException ......{
        System.out.println("這個是程序的destroyed事件,當您按下退出時調用");
    }

    protected void pauseApp() ......{
        System.out.println("這個是程序的pause事件,當您按下暫停的時調用");

    }

    protected void startApp() throws MIDletStateChangeException ......{
        System.out.println("這個是程序的active事件,程序啟動時候調用");

    }

}

大家可以運行程序中看到這個程序的運行先后順些。基本上就明白了程序的調用機制了。
現在大家思考下,j2me的MIDlet是怎么樣運行的呢?sun在里面進行了什么樣子的限制與手腳呢?
一般的應用程序都有個main入門。這里沒有,為什么呢?
我想這個就是ASM的作用了,sun在后臺做了很多處理,比如包括,啟動容器,啟動MIDlet相關的資源等等。

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

安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
亚洲人成网站在线播放2019 _日韩国产欧美精品_久久夜色精品国产欧美乱_在线视频福利一区
91精品国产91久久久久久久久| 69精品小视频| 亚洲一区二区三区色| 久久成人国产精品| 久久夜色精品国产| 色在人av网站天堂精品| 伊人久久大香线蕉午夜av| 欧美精品久久一区二区| 亚洲一二三区在线| 亚洲a区在线视频| 日韩中文在线字幕| 日韩少妇内射免费播放| 奇米一区二区三区四区久久| 欧美在线视频网| 国产在线观看福利| 高清视频一区二区三区| 久青草视频在线播放| 国产精品99蜜臀久久不卡二区| 国产激情片在线观看| 精品国产一区二区三区四区在线观看 | 亚洲乱码国产一区三区| 天天久久人人| 欧美在线视频a| 国产亚洲天堂网| 国产精品稀缺呦系列在线| 国产黑人绿帽在线第一区| 日韩在线欧美在线国产在线| 国产精品久久久久999| 久久久久久av| 日韩精品伦理第一区| 国内自拍欧美激情| www久久99| 久久久久久噜噜噜久久久精品| 国产精品久久久久久久久借妻| 亚洲在线视频观看| 欧美在线视频一二三| 国产精品一区二区三区四区五区| 91精品视频观看| 国产精品美女www| 亚洲最新在线| 欧美日韩一区二区三区免费 | 久久婷婷五月综合色国产香蕉| 久久精品国产96久久久香蕉| 欧美激情精品久久久久久大尺度| 少妇人妻无码专区视频| 国产尤物99| 色av吧综合网| 亚洲欧洲日产国码无码久久99| 日韩免费在线免费观看| 国产精品在线看| 国产精品网站免费| 视频一区不卡| 成人3d动漫一区二区三区| 久久人人爽人人爽爽久久| 天天成人综合网| 国产九区一区在线| 国产精品美女久久久久久免费| 日本在线观看天堂男亚洲| 国产精品永久在线| 国产精品精品国产| 青青青在线视频播放| 91免费精品视频| 精品国产av无码一区二区三区| 日韩免费在线播放| 久久免费视频网| 亚洲在线观看视频| 国产美女在线一区| 国产精品丝袜高跟| 人妻无码一区二区三区四区| 国产精品96久久久久久| 一区二区三区四区欧美| 国产亚洲精品久久久久久久| 久久久国产精品一区| 日韩av片免费在线观看| 久久精品中文字幕一区二区三区| 一区二区不卡在线| 成人久久久久久久久| 中文字幕久精品免| 国产日韩在线亚洲字幕中文| 久久综合伊人77777尤物| 欧美一级电影久久| 精品久久国产精品| 欧美视频免费看欧美视频| 日韩在线观看成人| 欧美亚洲日本在线观看| 久久99精品久久久久久久久久| 性欧美亚洲xxxx乳在线观看 | 国产成人a亚洲精品| 午夜美女久久久久爽久久| 成人在线一区二区| 一区二区国产日产| 99精品欧美一区二区三区| 亚洲最大av网站| 91九色对白| 欧美一级日本a级v片| 久久99精品国产99久久 | 欧美精品一区二区三区免费播放| 国产成人avxxxxx在线看| 粉嫩精品一区二区三区在线观看| 国产一区二区三区奇米久涩| 91精品久久久久久久久| 亚洲国产精品www| www.av一区视频| 亚洲色精品三区二区一区| 91美女福利视频高清| 婷婷久久伊人| 久久艹中文字幕| 欧美日韩无遮挡| 久久伊人色综合| 国产精品自产拍在线观看中文| 亚洲综合五月天| 国产成人一区二区三区免费看| 日本高清视频免费在线观看| 久久天天躁狠狠躁老女人| 欧美韩国日本在线| 欧美成人一区二区三区电影| y111111国产精品久久婷婷| 亚洲av首页在线| 色噜噜狠狠狠综合曰曰曰| 国严精品久久久久久亚洲影视 | 成人久久18免费网站漫画| 日韩在线国产| 久久人人爽人人爽爽久久 | 国产一区高清视频| 欧美激情一区二区三区久久久| 99亚洲国产精品| 日韩欧美亚洲精品| 国产精品偷伦视频免费观看国产| 国产亚洲精品久久久久久久| 视频一区免费观看| 欧美成人精品在线观看| 91精品啪在线观看麻豆免费| 青青在线视频观看| 伊人色综合久久天天五月婷| 久久久久亚洲av无码专区喷水| 免费黄色福利视频| 亚洲国产一区二区在线| 国产精品人人做人人爽| 91免费看片在线| 免费观看亚洲视频| 色就是色欧美| 国产精品成人aaaaa网站| 99视频在线| 国语精品免费视频| 少妇熟女一区二区| 久操成人在线视频| 久久久国产在线视频| 91精品久久久久久久久久久久久久| 黄色免费视频大全| 日本一区二区三不卡| 精品丰满人妻无套内射| 久久久久女教师免费一区| 成人免费午夜电影| 黄色一级二级三级| 日韩精品免费播放| 亚洲v欧美v另类v综合v日韩v| 久久综合久久八八| 久久av综合网| y111111国产精品久久婷婷| 好吊色欧美一区二区三区四区| 日本一区二区三不卡| 亚洲一区二区三区毛片| 欧美不卡视频一区发布| 久久久久久久少妇| 8090成年在线看片午夜| 国产精品主播视频| 国产亚洲天堂网| 欧美v在线观看| 日韩亚洲欧美精品| 午夜精品在线视频| 一区二区精品免费视频| 色综合久久88色综合天天看泰| 国产成人精品一区二区三区福利| 91国产中文字幕| 99在线首页视频| 成人在线国产精品| 国产欧美精品xxxx另类| 国产一区在线播放| 欧美,日韩,国产在线| 欧美在线视频导航| 欧美久久综合性欧美| 日韩精品一区二区三区四| 亚洲激情免费视频| 亚欧洲精品在线视频免费观看| 亚洲一区久久久| 亚洲三区四区| 亚洲激情一区二区三区| 亚洲综合色av| 亚洲一区二区三区视频播放| 亚洲熟妇无码一区二区三区导航| 欧美激情亚洲视频| 亚洲精品欧美日韩| 日韩在线国产| 人人干视频在线| 国内精品一区二区三区四区| 蜜桃视频一区二区在线观看| 国产主播在线看| 国产美女久久精品| 91免费看国产| 久久96国产精品久久99软件|