1.4 應用程式元件

一個應用程式中能包含許多元件,這些元件是組成一個應用程式所有功 能的要件,例如一個操作的畫面、在背景執行的程式或提供資料查詢的介面。 當使用者點擊執行一個應用程式,預設會執行這個應用程式所設定的執行進 入點,由這個進入點與使用者開始互動,之後,因應使用者的操作而設計其 他的元件來滿足功能需求。

應用程式的元件分為四種類型,開發者可利用其不同的特性,選擇並設 計出符合需求的客製化元件,四種類型如下:

Activity 活動

一個 Activity 可代表使用者介面中的一個畫面,比如說一個登入畫面 或一個主功能畫面等,每個畫面活動都是一個獨立的元件個體,但可利用 Intent 意圖的設計啟動另外一個元件,Android 的活動是一個繼承 android. app.Activity 的子類別。

Content Provider 內容提供器

一個應用程式能夠存取自己的資料、檔案,也可透過 Android 的資料庫 SQLite 將資料儲存在資料庫中,預設的情況下,這個資料庫的資料只允許該 應用程式內的元件可以存取。但透過 Content Provider 機制的設計,能夠將 這些資料提供出來,讓其他的應用程式也能夠存取,反之,一個應用程式也 能透過其他應用程式所提供的內容提供器存取外部的資料。例如應用程式可 透過內容提供器讀取到裝置上的聯絡人資料。

Broadcast Receiver 廣播接收器

廣播接收器並沒有使用者介面,這個元件能夠傾聽特定的事件,Android 使用 Intent 意圖代表系統中所發生的事件,例如撥出電話、螢幕關閉等意圖, 應用程式也能夠廣播意圖到系統中,系統會經過比對,找出適合處理這個意 圖的應用程式,例如應用程式中送出撥出一個電話號碼的意圖到系統,系統 找到能處理撥號的應用程式,啟動撥號應用程式負責這個意圖。廣播接收器 是一個實作 android.content.BroadcastReceiver 的子類別,能夠獲取在系統 中發生的特定意圖 Intent。

Service 服務

Service 服務不需要設計與使用者互動的介面,而能夠在系統的背景中執 行的一種 Java 類別,有時候在設計工作時,希望這些工作能在 Activity 結束 時還能夠繼續執行,這時候可以使用 Service 元件設計這些工作,例如下載、 上傳檔案、儲存或讀取檔案與網路連線等。

依不同需求也能設計與 Activity 之間有互動的服務元件,Activity 可 以與 Service 建立連繫,這種連繫關係稱為「binding」。服務元件是繼承 android.app.Service 的子類別,是一個無使用者介面,能夠在背景執行工作 的元件。

Last updated