Android應用程式四大組件

來源:互聯網
上載者:User

對於一個Android應用程式來說,是由四種構造塊組織而成的,這四種構造塊如下:

Activity

Intent Receiver

Service

Content Provider

但是,並不是每一個Android應用程式都需要這四種構造塊,這不是必須的,某些時候, 我們只需要這四種中的幾種組合成我們的應用。

當我們明確了我們的應用需要哪些構造塊後,我們就需要在AndroidManifest.xml中登記 這些構造塊的清單。這是一個XML設定檔,這個設定檔用於定義我們的應用程式的組件、 組件的功能及必要條件等。這個設定檔是每個Android應用必需的。對於 AndroidMainfest.xml的Schema,參考SDK包附帶的文檔。以下,我們對四種構造塊做一些說 明:

一、Activity

Activity是Android構造塊中最基本的一種,在應用中,一個activity通常就是一個單獨 的螢幕。每一個activity都被實現為一個獨立的類,並且繼承於Activity這個基類。這個 activity類將會顯示由幾個Views控制群組成的使用者介面,並對事件做出響應。大部份的應用都 會包含多個的螢幕。例如,一個短訊息應用程式將會有一個螢幕用於顯示連絡人清單,第二 個螢幕用於寫短訊息,同時還會有用於瀏覽舊短訊息及進行系統設定的螢幕。每一個這樣的 螢幕,就是一個activity。從一個螢幕導航到另一個螢幕是很簡單的。在一些應用中,一個 螢幕甚至會傳回值給前一個螢幕。

當一個新的螢幕開啟後,前一個螢幕將會暫停,並儲存在曆史堆棧中。使用者可以返回到曆 史堆棧中的前一個螢幕。當螢幕不再使用時,還可以從曆史堆棧中刪除。預設情況下, Android將會保留從主畫面到每一個應用的運行螢幕。

Android使用了Intent這個特殊類,實現在螢幕與螢幕之間移動。Intent類用於描述一個 應用將會做什麼事。在Intent的描述結構中,有兩個最重要的部分:動作和動作對應的資料 。典型的動作類型有:MAIN(activity的門戶)、VIEW、PICK、EDIT等。而動作對應的資料 則以URI的形式進行表示。例如:要查看一個人的連絡方式,你需要建立一個動作類型為VIEW 的intent,以及一個表示這個人的URI。

與之有關係的一個類叫IntentFilter。相對於intent是一個有效做某事的請求,一個 intent filter則用於描述一個activity(或者Intent Receiver)能夠操作哪些intent。一 個activity如果要顯示一個人的連絡方式時,需要聲明一個IntentFilter,這個 IntentFilter要知道怎麼去處理VIEW動作和表示一個人的URI。IntentFilter需要在 AndroidManifest.xml中定義。

通過解析各種intent,從一個螢幕導航到另一個螢幕是很簡單的。當向前置航時, activity將會調用startActivity(Intent myIntent)方法。然後,系統會在所有安裝的應用 程式中定義的IntentFilter中尋找,找到最匹配myIntent的Intent對應的activity。新的 activity接收到myIntent的通知後,開始運行。當startActivity方法被調用將觸發解析 myIntent的動作,這個機制提供了兩個關鍵好處:

A、Activities能夠重複利用從其它組件中以Intent的形式產生的一個請求;

B、Activities可以在任何時候被一個具有相同IntentFilter的新的Activity取代。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.