關(guān)于android的四個(gè)組成部分是什么它們的功能是什么?這個(gè)問(wèn)題很多朋友還不知道,今天小六來(lái)為大家解答以上的問(wèn)題,現(xiàn)在讓我們一起來(lái)看看吧!
1、Android組件分別為activity、service、content provider、broadcast receiver。
2、一、android組件詳解activity(1)一個(gè)Activity通常就是一個(gè)單獨(dú)的屏幕(窗口)。
3、(2)Activity之間通過(guò)Intent進(jìn)行通信。
4、(3)android應(yīng)用中每一個(gè)Activity都必須要在AndroidManifest.xml配置文件中聲明,否則系統(tǒng)將不識(shí)別也不執(zhí)行該Activity。
5、2、service(1)service用于在后臺(tái)完成用戶指定的操作。
6、service分為兩種:(a)started(啟動(dòng)):當(dāng)應(yīng)用程序組件(如activity)調(diào)用startService()方法啟動(dòng)服務(wù)時(shí),服務(wù)處于started狀態(tài)。
7、(b)bound(綁定):當(dāng)應(yīng)用程序組件調(diào)用bindService()方法綁定到服務(wù)時(shí),服務(wù)處于bound狀態(tài)。
8、(2)startService()與bindService()區(qū)別:(a)started service(啟動(dòng)服務(wù))是由其他組件調(diào)用startService()方法啟動(dòng)的,這導(dǎo)致服務(wù)的onStartCommand()方法被調(diào)用。
9、當(dāng)服務(wù)是started狀態(tài)時(shí),其生命周期與啟動(dòng)它的組件無(wú)關(guān),并且可以在后臺(tái)無(wú)限期運(yùn)行,即使啟動(dòng)服務(wù)的組件已經(jīng)被銷(xiāo)毀。
10、因此,服務(wù)需要在完成任務(wù)后調(diào)用stopSelf()方法停止,或者由其他組件調(diào)用stopService()方法停止。
11、(b)使用bindService()方法啟用服務(wù),調(diào)用者與服務(wù)綁定在了一起,調(diào)用者一旦退出,服務(wù)也就終止,大有“不求同時(shí)生,必須同時(shí)死”的特點(diǎn)。
12、(3)開(kāi)發(fā)人員需要在應(yīng)用程序配置文件中聲明全部的service,使用
13、(4)Service通常位于后臺(tái)運(yùn)行,它一般不需要與用戶交互,因此Service組件沒(méi)有圖形用戶界面。
14、Service組件需要繼承Service基類(lèi)。
15、Service組件通常用于為其他組件提供后臺(tái)服務(wù)或監(jiān)控其他組件的運(yùn)行狀態(tài)。
16、3、content provider(1)android平臺(tái)提供了Content Provider使一個(gè)應(yīng)用程序的指定數(shù)據(jù)集提供給其他應(yīng)用程序。
17、其他應(yīng)用可以通過(guò)ContentResolver類(lèi)從該內(nèi)容提供者中獲取或存入數(shù)據(jù)。
18、(2)只有需要在多個(gè)應(yīng)用程序間共享數(shù)據(jù)是才需要內(nèi)容提供者。
19、例如,通訊錄數(shù)據(jù)被多個(gè)應(yīng)用程序使用,且必須存儲(chǔ)在一個(gè)內(nèi)容提供者中。
20、它的好處是統(tǒng)一數(shù)據(jù)訪問(wèn)方式。
21、(3)ContentProvider實(shí)現(xiàn)數(shù)據(jù)共享。
22、ContentProvider用于保存和獲取數(shù)據(jù),并使其對(duì)所有應(yīng)用程序可見(jiàn)。
23、這是不同應(yīng)用程序間共享數(shù)據(jù)的唯一方式,因?yàn)閍ndroid沒(méi)有提供所有應(yīng)用共同訪問(wèn)的公共存儲(chǔ)區(qū)。
24、(4)開(kāi)發(fā)人員不會(huì)直接使用ContentProvider類(lèi)的對(duì)象,大多數(shù)是通過(guò)ContentResolver對(duì)象實(shí)現(xiàn)對(duì)ContentProvider的操作。
25、(5)ContentProvider使用URI來(lái)唯一標(biāo)識(shí)其數(shù)據(jù)集,這里的URI以content://作為前綴,表示該數(shù)據(jù)由ContentProvider來(lái)管理。
26、4、broadcast receiver(1)你的應(yīng)用可以使用它對(duì)外部事件進(jìn)行過(guò)濾,只對(duì)感興趣的外部事件(如當(dāng)電話呼入時(shí),或者數(shù)據(jù)網(wǎng)絡(luò)可用時(shí))進(jìn)行接收并做出響應(yīng)。
27、廣播接收器沒(méi)有用戶界面。
28、然而,它們可以啟動(dòng)一個(gè)activity或serice來(lái)響應(yīng)它們收到的信息,或者用NotificationManager來(lái)通知用戶。
29、通知可以用很多種方式來(lái)吸引用戶的注意力,例如閃動(dòng)背燈、震動(dòng)、播放聲音等。
30、一般來(lái)說(shuō)是在狀態(tài)欄上放一個(gè)持久的圖標(biāo),用戶可以打開(kāi)它并獲取消息。
31、(2)廣播接收者的注冊(cè)有兩種方法,分別是程序動(dòng)態(tài)注冊(cè)和AndroidManifest文件中進(jìn)行靜態(tài)注冊(cè)。
32、(3)動(dòng)態(tài)注冊(cè)廣播接收器特點(diǎn)是當(dāng)用來(lái)注冊(cè)的Activity關(guān)掉后,廣播也就失效了。
33、靜態(tài)注冊(cè)無(wú)需擔(dān)憂廣播接收器是否被關(guān)閉,只要設(shè)備是開(kāi)啟狀態(tài),廣播接收器也是打開(kāi)著的。
34、也就是說(shuō)哪怕app本身未啟動(dòng),該app訂閱的廣播在。
本文分享完畢,希望對(duì)大家有所幫助。
標(biāo)簽:
免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請(qǐng)聯(lián)系刪除!