1. 組件作為程序元素與作為服務之間有什麼根本不同
應用組件是一個Android應用程序的基本構建塊。 每個組件都是一個不同的角度,通過該系統可以進入您的應用程序。 並非所有組件都為用戶的實際入口點和一些互相依賴的,但每一個作為自己的實體存在,起著特定的角色,每個人都是獨特的建築塊,有助於確定你的應用程序的整體行為。
有四種不同類型的應用程序組件。 每種類型提供不同的目的,並具有明顯的生命周期定義組件如何創建和銷毀。
這里有四種類型的應用程序組件:
活動
一個活動表示一個單一的屏幕上的用戶界面。 例如,電子郵件應用程序可能有一個活動,顯示新的電子郵件列表,另一個活動,撰寫電子郵件,閱讀電子郵件和其他活動。 雖然活動攜手合作,形成一個有凝聚力的電子郵件應用程序中的用戶體驗,每一個都是獨立的。 因此,不同的應用程序可以從這些活動的任何一個(如果電子郵件應用程序允許的話)。 例如,一個攝像頭的應用程序可以從構成新郵件的電子郵件應用程序中的活動,為了使用戶共享圖片。
實施的一項活動作為Activity的一個子類,你可以學習更多關於它的活動開發人員指南。
服務
服務是一種在後台運行的組件來執行長時間運行的操作或執行對遠程進程的工作。 一個服務不提供用戶界面。 例如,一個服務可以在後台播放音樂,而用戶在不同的應用程序,或者它可能通過網路獲取數據,而不阻塞用戶交互與活動。 另一個組成部分,比如一個活動,可以啟動該服務,並讓它運行或綁定到它,為了與它進行交互。
實現一個服務作為Service的一個子類,你可以學習更多關於它的服務開發指南。
內容提供商
內容提供者管理應用程序數據共享的一組。 您可以將數據存儲在文件系統中,SQLite資料庫,在網路上,或任何其他持久性存儲應用程序可以訪問的位置。 通過內容提供者,以及其他的應用程序可以查詢甚至修改的內容提供者的數據(如果允許的話)。 例如,Android系統提供管理用戶的聯系人信息的內容提供商。 因此,任何具有適當許可權的應用程序可以查詢內容提供商(如ContactsContract.Data )的一部分,一個特定的人讀取和寫入信息。
內容提供商也可用於讀取和寫入數據,您的應用程序的私有,而不是共享。 例如, 記事本示例應用程序使用一個內容提供商保存筆記。
內容提供商實現ContentProvider一個子類,並實施了一套標準的API,使其他應用程序來執行交易。 欲了解更多信息,請參閱內容提供商開發指南。
廣播接收機
廣播接收器是一個組件,全系統廣播通知。 許多廣播系統源於例如,廣播宣布,顯示屏已經關閉,電池低,或圖片被抓獲。 應用程序也可以啟動廣播,例如,讓其他應用程序知道某些數據已經被下載到設備上,可供他們使用。 雖然廣播接收機不顯示用戶界面,它們可以創建一個狀態欄通知廣播事件發生時,以提醒用戶。然而,更常見的是,廣播接收器僅僅是「網關」到其他組件的目的是做一個非常小的量的工作。 例如,它可能會啟動服務執行基於事件的一些工作。
BroadcastReceiver一個子類的廣播接收機被實現為每個廣播交付一個Intent對象。 欲了解更多信息,請參閱BroadcastReceiver類。