<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    胖熊熊

    得到多少又失去了什么

    Android學習 (二) 應用程序結構

       注:以下內容轉自網絡

    在一個Android 應用中有如下的四種組件:
    * Activity 活動組件
    * Intent Receiver 接受處理組件
    * Service 服務組件
    * Content Provider 內容提供組件
    一個Android 應用并不需要同時具有這四個組件,應用可以組合這些組件。

    在應用中一旦決定使用了哪些組件,就需要在AndroidManifest.xml文件中列舉出來。

    Activity
    Activities是最普遍的組件,在應用中通常用于顯示一個屏幕(頁面)的內容,僅僅一個屏幕(頁面)的內容。開發人員需要從Activity基 類繼承下來,管理UI顯示和UI的反饋事件。大多數應用程序都會有多個屏幕(頁面)的內容,如一個文本消息的應用程序,第一個頁面要顯示聯系人列表,第二 個頁面要寫東西給選定的聯系人,其他頁面顯示舊的文本內容或者其他等等。每一個頁面都被當做一個Activity(活動組件),移動到其他頁面意味著開始 了一個新的Activity(活動組件)。在某些場景下,一個Activity可以返回值給前一個Activity,如一個頁面選擇了一張圖片,可以返回 這張圖片給調用者(Activit)。

    打開新的頁面時,前一個頁面將會暫停,放置到一個歷史堆棧中,用戶可以使用后退鍵瀏覽前面的頁面,頁面也可以從堆棧中刪除。Android會為每一個從主頁面home screen(idle界面?)啟動的應用維護一個歷史堆棧列表。

    Intent and Intent Filters
    Android使用一個叫Intent的類從一個頁面移動到另外一個頁面。一個Intent描述了應用將要做的事情,就是一種動作行為。最重要的有兩點: 動作的類型和動作所捎帶的參數(數據),典型的動作類型為MAIN(activity的正門),VIEW, PICK, EDIT等等。參數數據以URI形式來表示。例如,為了查看一個人的聯系信息,需要創建一個Intent,動作類型為VIEW,人名為參數數據(需要格式 化為URI)。

    一個Activity為了表明能夠處理某些Intent,Android設計了一個相關的類IntentFilter,Activity在 IntentFilter中決定它能夠處理的Intent動作類型,IntentFilter需要在AndroidManifest.xml文件中進行聲 明。

    從一個頁面到另外一個頁面跳轉的依據在于發出的Intent,為了向前瀏覽,Activity調用startActivity(myIntent). Android系統在所有安裝的應用程序中查找intent filters,找出最能夠匹配myIntent的Activity。新的activity將被啟動,intent被傳入。有如下兩個關鍵點:
    * Activities 能夠重新被使用
    * Activities 在任何時候都可以被替換,只要一個Activity設置了相同的IntentFilter

    Intent Receiver
    在應用程序中,針對外部事件需要執行一些動作來反饋,可以使用IntentReceiver類。例如:來了一個電話,或者數據通道可用,或者晚上到了。 Intent Receiver沒有UI的顯示,盡管可以通過NotificationManager 通知用戶某些有趣的事情發生了。Intent Receivers也需要在AndroidManifest.xml中進行聲明,當然也可以在程序中調用 Context.registerReceiver()接口動態聲明。同時在應用程序沒有跑起來的時候也能夠調用Intent Receivers,當一個Intent Receivers被觸發時,Android系統將會啟動這個應用程序。應用程序也能夠通過Context.broadcastIntent()廣播他們 的Intent。

    Service
    一個Service是沒有UI,一直運行在后臺的代碼組件。一個好的例子:播放器從一個播放列表中播放歌曲。在一個播放器應用中,大概會有一個或多個 Activity組件允許用戶選擇歌曲和播放它們,歌曲播放代碼不應該放在Activity組件中,因為我們希望一直能夠聽歌,甚至切換到了其他頁面。所 以,播放器頁面應該啟動一個服務組件(Context.startService())來播放歌曲。Android系統將會保持service運行直到它 結束(可以參考“Android 應用的生命周期”一文)??梢允褂肅ontext.bindService()接口連接上一個服務(如果這時候服務沒有啟動,連接會導致服務啟動),連接 上之后,就可以和服務進行通訊。像播放器的例子,可以允許暫停,重繞等等。

    Content Provider
    應用程序可以在文件中,數據庫或者其他設備存儲他們的數據。Content Provider用于將各個應用程序的數據進行共享,Content Provider是一個類,執行一套標準的方法,讓其他的應用程序存儲和獲取Content Provider所處理的數據

    轉載自:http://blog.csdn.net/lixinye0123/archive/2008/04/16/2296916.aspx

    posted on 2011-04-02 15:58 fatbear 閱讀(429) 評論(0)  編輯  收藏 所屬分類: Android


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 中文亚洲AV片不卡在线观看| 免费观看的毛片手机视频| 亚洲黄片手机免费观看| 中国国语毛片免费观看视频| 久久久国产精品福利免费| 久久精品网站免费观看| 免费在线观看黄网| 亚洲v高清理论电影| 亚洲午夜无码久久久久小说 | 亚洲欧洲中文日产| 国产亚洲视频在线观看网址| 亚洲免费人成在线视频观看| 亚洲av福利无码无一区二区 | 精品剧情v国产在免费线观看 | 国产国产人免费人成成免视频| 亚洲中文字幕无码日韩| 免费视频成人片在线观看| 国产无遮挡裸体免费视频 | 久久精品国产这里是免费| 国产精品免费播放| 青青青视频免费观看| 一个人在线观看视频免费| 久久久综合亚洲色一区二区三区| 99久久免费看国产精品| 亚洲黄页网在线观看| 最近免费字幕中文大全视频| 亚洲精品无码99在线观看| 亚洲人成7777| 免费成人激情视频| 亚洲韩国精品无码一区二区三区| 蜜桃传媒一区二区亚洲AV| h视频在线观看免费完整版| 亚洲欧美日本韩国| 成年人网站在线免费观看| 亚洲一区二区三区播放在线| 亚洲视频免费在线观看| 亚洲av日韩综合一区在线观看| 国产精品久久久久免费a∨| 一级毛片a女人刺激视频免费| xvideos亚洲永久网址| 国产亚洲漂亮白嫩美女在线|