四大元件:1、Activity元件,它一個單獨的視窗,程式流程都必須在【Activity】中執行,所有它是最基本的模組。2、service元件,用於在後臺完成使用者指定的操作。3、content provider元件,會為所有的應用準備一個內容視窗,並且保留資料庫、檔案。4、broadcast receiver元件,是程式之間傳遞資訊時的一種機制,作用就是接收或者傳送通知。
php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:
本教學操作環境:Android 13系統、小米12手機。
Android四大元件分別為activity、service、content provider、broadcast receiver。
一、android四大元件詳解
1、activity
Activity可以看成是安卓系統的根本,在這個根本上才可以進行其他的工作,因為在安卓系統裡執行的所有的程式,它的流程都必須在【Activity】中執行,所有他是最基本的模組。它的作用是一個框架或頁面,每個程式會有多個【Activity】組成。
(1)一個Activity通常就是一個單獨的螢幕(視窗)。
(2)Activity之間通過Intent進行通訊。
(3)android應用中每一個Activity都必須要在AndroidManifest.xml組態檔中宣告,否則系統將不識別也不執行該Activity。
2、service
Service是安卓裡非常很重要的元件,它的地位和優先順序別是與活動相似的,不過Service不能夠自己執行,它只能在安卓的後臺執行。它的作用就是與安卓的其他逐漸進行互動,舉個簡單例子:當我們開啟手機上音樂播放器並將它放到後臺,此時播放的音樂就是由Service在負責控制。
1)service用於在後臺完成使用者指定的操作。service分為兩種:
started(啟動):當應用程式元件(如activity)呼叫startService()方法啟動服務時,服務處於started狀態。
bound(繫結):當應用程式元件呼叫bindService()方法系結到服務時,服務處於bound狀態。
2)startService()與bindService()區別:
started service(啟動服務)是由其他元件呼叫startService()方法啟動的,這導致服務的onStartCommand()方法被呼叫。當服務是started狀態時,其生命週期與啟動它的元件無關,並且可以在後臺無限期執行,即使啟動服務的元件已經被銷燬。因此,服務需要在完成任務後呼叫stopSelf()方法停止,或者由其他元件呼叫stopService()方法停止。
使用bindService()方法啟用服務,呼叫者與服務繫結在了一起,呼叫者一旦退出,服務也就終止,大有「不求同時生,必須同時死」的特點。
3)開發人員需要在應用程式組態檔中宣告全部的service,使用<service></service>標籤。
4)Service通常位於後臺執行,它一般不需要與使用者互動,因此Service元件沒有圖形化使用者介面。Service元件需要繼承Service基礎類別。Service元件通常用於為其他元件提供後臺服務或監控其他元件的執行狀態。
3、content provider(內容提供商)
內容提供商這個元件是專門為第三方應用而設計的,它非常的靈活,而且相當重要,它會為所有的應用準備一個內容視窗,並且保留資料庫、檔案,作用就是我們在使用這些第三方軟體的時候,可以有效的存取,並且保護裡面的資料。
1)android平臺提供了Content Provider使一個應用程式的指定資料集提供給其他應用程式。其他應用可以通過ContentResolver類從該內容提供者中獲取或存入資料。
2)只有需要在多個應用程式間共用資料是才需要內容提供者。例如,通訊錄資料被多個應用程式使用,且必須儲存在一個內容提供者中。它的好處是統一資料存取方式。
3)ContentProvider實現資料共用。ContentProvider用於儲存和獲取資料,並使其對所有應用程式可見。這是不同應用程式間共用資料的唯一方式,因為android沒有提供所有應用共同存取的公共儲存區。
4)開發人員不會直接使用ContentProvider類的物件,大多數是通過ContentResolver物件實現對ContentProvider的操作。
5)ContentProvider使用URI來唯一標識其資料集,這裡的URI以content://作為字首,表示該資料由ContentProvider來管理。
4、broadcast receiver(廣播接收器)
在安卓系統中,廣播接收器並不是直接就可以看到的,它是程式之間傳遞資訊時的一種機制,作用就是接收或者傳送通知。通俗的來說廣播接收器更像是一種傳遞元件,它能夠將資訊接收,甚至還可以對它進行過濾然後進行響應。
1)你的應用可以使用它對外部事件進行過濾,只對感興趣的外部事件(如當電話呼入時,或者資料網路可用時)進行接收並做出響應。廣播接收器沒有使用者介面。然而,它們可以啟動一個activity或serice來響應它們收到的資訊,或者用NotificationManager來通知使用者。通知可以用很多種方式來吸參照戶的注意力,例如閃動背燈、震動、播放聲音等。一般來說是在狀態列上放一個持久的圖示,使用者可以開啟它並獲取訊息。
2)廣播接收者的註冊有兩種方法,分別是程式動態註冊和AndroidManifest檔案中進行靜態註冊。
3)動態註冊廣播接收器特點是當用來註冊的Activity關掉後,廣播也就失效了。靜態註冊無需擔憂廣播接收器是否被關閉,只要裝置是開啟狀態,廣播接收器也是開啟著的。也就是說哪怕app本身未啟動,該app訂閱的廣播在觸發時也會對它起作用。
二、android四大元件總結:
1、4大元件的註冊
4大基本元件都需要註冊才能使用,每個Activity、service、Content Provider都需要在AndroidManifest檔案中進行設定。AndroidManifest檔案中未進行宣告的activity、服務以及內容提供者將不為系統所見,從而也就不可用。而broadcast receiver廣播接收者的註冊分靜態註冊(在AndroidManifest檔案中進行設定)和通過程式碼動態建立並以呼叫Context.registerReceiver()的方式註冊至系統。需要注意的是在AndroidManifest檔案中進行設定的廣播接收者會隨系統的啟動而一直處於活躍狀態,只要接收到感興趣的廣播就會觸發(即使程式未執行)。
2、4大元件的啟用
內容提供者的啟用:當接收到ContentResolver發出的請求後,內容提供者被啟用。而其它三種元件activity、服務和廣播接收器被一種叫做intent的非同步訊息所啟用。
3、4大元件的關閉
內容提供者僅在響應ContentResolver提出請求的時候啟用。而一個廣播接收器僅在響應廣播資訊的時候啟用。所以,沒有必要去顯式的關閉這些元件。Activity關閉:可以通過呼叫它的finish()方法來關閉一個activity。服務關閉:對於通過startService()方法啟動的服務要呼叫Context.stopService()方法關閉服務,使用bindService()方法啟動的服務要呼叫Contex.unbindService()方法關閉服務。
4、android中的任務(activity棧)
a)任務其實就是activity的棧,它由一個或多個Activity組成,共同完成一個完整的使用者體驗。棧底的是啟動整個任務的Activity,棧頂的是當前執行的使用者可以互動的Activity,當一個activity啟動另外一個的時候,新的activity就被壓入棧,併成為當前執行的activity。而前一個activity仍保持在棧之中。當使用者按下BACK鍵的時候,當前activity出棧,而前一個恢復為當前執行的activity。棧中儲存的其實是物件,棧中的Activity永遠不會重排,只會壓入或彈出。
b)任務中的所有activity是作為一個整體進行移動的。整個的任務(即activity棧)可以移到前臺,或退至後臺。
c)Android系統是一個多工(Multi-Task)的作業系統,可以在用手機聽音樂的同時,也執行其他多個程式。每多執行一個應用程式,就會多耗費一些系統記憶體,當同時執行的程式過多,或是關閉的程式沒有正確釋放掉記憶體,系統就會覺得越來越慢,甚至不穩定。為了解決這個問題,Android引入了一個新的機制,即生命週期(Life Cycle)。
更多相關知識,請存取欄目!
以上就是android的四大元件是什麼的詳細內容,更多請關注TW511.COM其它相關文章!