安卓四大組件簡(jiǎn)單概括_第1頁(yè)
安卓四大組件簡(jiǎn)單概括_第2頁(yè)
安卓四大組件簡(jiǎn)單概括_第3頁(yè)
安卓四大組件簡(jiǎn)單概括_第4頁(yè)
安卓四大組件簡(jiǎn)單概括_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

安卓四大組件簡(jiǎn)單概括【篇一:安卓四大組件簡(jiǎn)單概括】activity-活動(dòng):、activity是android程序的呈現(xiàn)層,顯示可視化的用戶界面,并接收與用戶交互所產(chǎn)生的界面事件,如單擊、觸摸事件。在界面上呈現(xiàn)形式為全屏窗體、非全屏懸浮窗體的對(duì)話框。、activities是可執(zhí)行的代碼塊,由用戶或者操作系統(tǒng)來(lái)進(jìn)行初始實(shí)例化,并在他們被需求時(shí)致以運(yùn)行。、activities可以與用戶、請(qǐng)求數(shù)據(jù)或者其他activity、service的服務(wù)通過(guò)query或intent進(jìn)行交互。、對(duì)于一個(gè)android應(yīng)用程序而言,可以有一個(gè)或多個(gè)activity,一般在程序啟動(dòng)后會(huì)呈現(xiàn)一個(gè)activity,用于提示用戶已經(jīng)正常啟動(dòng)此activity。當(dāng)activity不積極運(yùn)行時(shí),可以被android系統(tǒng)終止已節(jié)省內(nèi)存。service-服務(wù):、service用于沒(méi)有用戶界面,但需要長(zhǎng)時(shí)間在后臺(tái)運(yùn)行的應(yīng)用。service有點(diǎn)類似于桌面應(yīng)用或者服務(wù)器操作系統(tǒng)上的服務(wù)和守護(hù)進(jìn)程。、service是在后臺(tái)運(yùn)行的可執(zhí)行的代碼塊,從它被初始化一直運(yùn)行到此程序關(guān)閉。、service最經(jīng)典的一個(gè)例子是音樂(lè)播放器,盡管用戶已經(jīng)使用了其它的應(yīng)用程序,但仍然需要持續(xù)播放音樂(lè),比如在你聽(tīng)歌的時(shí)候,有人打個(gè)電話進(jìn)來(lái),此時(shí)音樂(lè)播放器的服務(wù)仍然子啊后臺(tái)運(yùn)行著,等你電話接完,音樂(lè)又會(huì)重新播放,在你接電話的時(shí)候是無(wú)音樂(lè)播放器的界面的,而程序一直執(zhí)行service來(lái)實(shí)現(xiàn)后臺(tái)任務(wù)。broadcastreceiver-廣播接收器(1)、broadcast和intentreceivers對(duì)從其他的應(yīng)用程序的服務(wù)請(qǐng)求做出一個(gè)全系統(tǒng)廣播的響應(yīng),這些廣播響應(yīng)可能來(lái)自于android系統(tǒng)本身或者是任何在其系統(tǒng)上運(yùn)行的程序。、broadcasereceiver是用來(lái)接受并響應(yīng)廣播消息的組件。、broadcasereceiver不包含任何用戶界面,但可以通過(guò)啟動(dòng)activity或者notification消息通知欄通知用戶接收到重要信息。、activity或service通過(guò)執(zhí)行一個(gè)intentreceiver為其他應(yīng)用程序提供了訪問(wèn)其功能的功能。intentreceiver是一段可執(zhí)行代碼塊,對(duì)其他activity的數(shù)據(jù)或服務(wù)請(qǐng)求做出響應(yīng)。請(qǐng)求的activity(客戶端)生成一個(gè)intent,把其添加至androidframework中,來(lái)指出哪些應(yīng)用程序(目標(biāo)程序)接收并對(duì)其做出響應(yīng)。(5)>intent是android的主要構(gòu)成元素之一,它從現(xiàn)有的應(yīng)用程序中創(chuàng)造新的應(yīng)用程序。intent實(shí)現(xiàn)了應(yīng)用程序和其他的應(yīng)用程序和服務(wù)交換所需信息的功能。contentprovider-內(nèi)容提供器:(1)、contentprovider是android系統(tǒng)提供的一種標(biāo)準(zhǔn)的共享數(shù)據(jù)的機(jī)制,應(yīng)用程序可以通過(guò)contentprovider來(lái)訪問(wèn)其他應(yīng)用程序的私有數(shù)據(jù)(私有數(shù)據(jù)可以是存儲(chǔ)在文件系統(tǒng)中的文件,也可以是sqlite中的數(shù)據(jù)庫(kù))。⑵、android系統(tǒng)內(nèi)部也提供一些內(nèi)置的contentprovider,能夠?yàn)閼?yīng)用程序提供重要的數(shù)據(jù)信息。android四大組件都具有自己的生命周期,是從組件建立到組件銷毀的整個(gè)過(guò)程。在生命周期中,組件會(huì)在可見(jiàn)、不可見(jiàn)、活動(dòng)、非活動(dòng)等狀態(tài)中不斷變化。【篇二:安卓四大組件簡(jiǎn)單概括】原文地址:android四大組件分別為activity、service>contentprovider、broadcastreceivero一、android四大組件1、 activity一個(gè)activity通常就是一個(gè)單獨(dú)的屏幕(窗口)。activity之間通過(guò)intent進(jìn)行通信。android應(yīng)用中每一個(gè)activity都必須要在androidmanifest.xml配置文件中聲明,否則系統(tǒng)將不識(shí)別也不執(zhí)行該activityo2、 service⑴service用于在后臺(tái)完成用戶指定的操作。service分為兩種:started(啟動(dòng)):當(dāng)應(yīng)用程序組件(如activity)調(diào)用startservice()方法啟動(dòng)服務(wù)時(shí),服務(wù)處于started狀態(tài)。bound(綁定):當(dāng)應(yīng)用程序組件調(diào)用bindservice()方法綁定到服務(wù)時(shí),服務(wù)處于bound狀態(tài)。startservice()與bindservice()區(qū)別:startedservice(啟動(dòng)服務(wù))是由其他組件調(diào)用startservice()方法啟動(dòng)的,這導(dǎo)致服務(wù)的onstartcommand()方法被調(diào)用。當(dāng)服務(wù)是started狀態(tài)時(shí),其生命周期與啟動(dòng)它的組件無(wú)關(guān),并且可以在后臺(tái)無(wú)限期運(yùn)行,即使啟動(dòng)服務(wù)的組件已經(jīng)被銷毀。因此,服務(wù)需要在完成任務(wù)后調(diào)用stopselfO方法停止,或者由其他組件調(diào)用stopservice()方法停止。使用bindservice()方法啟用服務(wù),調(diào)用者與服務(wù)綁定在了一起,調(diào)用者一旦退出,服務(wù)也就終止,大有“不求同時(shí)生,必須同時(shí)死”的特點(diǎn)。開(kāi)發(fā)人員需要在應(yīng)用程序配置文件中聲明全部的service,使用service/service標(biāo)簽。service通常位于后臺(tái)運(yùn)行,它一般不需要與用戶交互,因此service組件沒(méi)有圖形用戶界面。service組件需要繼承service基類。service組件通常用于為其他組件提供后臺(tái)服務(wù)或監(jiān)控其他組件的運(yùn)行狀態(tài)。3、 contentproviderandroid平臺(tái)提供了contentprovider使一個(gè)應(yīng)用程序的指定數(shù)據(jù)集提供給其他應(yīng)用程序。其他應(yīng)用可以通過(guò)contentresolver類從該內(nèi)容提供者中獲取或存入數(shù)據(jù)。只有需要在多個(gè)應(yīng)用程序間共享數(shù)據(jù)是才需要內(nèi)容提供者。例如,通訊錄數(shù)據(jù)被多個(gè)應(yīng)用程序使用,且必須存儲(chǔ)在一個(gè)內(nèi)容提供者中。它的好處是統(tǒng)一數(shù)據(jù)訪問(wèn)方式。contentprovider實(shí)現(xiàn)數(shù)據(jù)共享。contentprovider用于保存和獲取數(shù)據(jù),并使其對(duì)所有應(yīng)用程序可見(jiàn)。這是不同應(yīng)用程序間共享數(shù)據(jù)的唯一方式,因?yàn)閍ndroid沒(méi)有提供所有應(yīng)用共同訪問(wèn)的公共存儲(chǔ)區(qū)。開(kāi)發(fā)人員不會(huì)直接使用contentprovider類的對(duì)象,大多數(shù)是通過(guò)contentresolver對(duì)象實(shí)現(xiàn)對(duì)contentprovider的操作。contentprovider使用uri來(lái)唯一標(biāo)識(shí)其數(shù)據(jù)集,這里的uri以content://作為前綴,表示該數(shù)據(jù)由contentprovider來(lái)管理。4、 broadcastreceiver⑴你的應(yīng)用可以使用它對(duì)外部事件進(jìn)行過(guò)濾,只對(duì)感興趣的外部事件(如當(dāng)電話呼入時(shí),或者數(shù)據(jù)網(wǎng)絡(luò)可用時(shí))進(jìn)行接收并做出響應(yīng)。廣播接收器沒(méi)有用戶界面。然而,它們可以啟動(dòng)一個(gè)activity或serice來(lái)響應(yīng)它們收到的信息,或者用notificationmanager來(lái)通知用戶。通知可以用很多種方式來(lái)吸引用戶的注意力,例如閃動(dòng)背燈、震動(dòng)、播放聲音等。一般來(lái)說(shuō)是在狀態(tài)欄上放一個(gè)持久的圖標(biāo),用戶可以打開(kāi)它并獲取消息。廣播接收者的注冊(cè)有兩種方法,分別是程序動(dòng)態(tài)注冊(cè)和androidmanifest文件中進(jìn)行靜態(tài)注冊(cè)。動(dòng)態(tài)注冊(cè)廣播接收器特點(diǎn)是當(dāng)用來(lái)注冊(cè)的activity關(guān)掉后,廣播也就失效了。靜態(tài)注冊(cè)無(wú)需擔(dān)憂廣播接收器是否被關(guān)閉,只要設(shè)備是開(kāi)啟狀態(tài),廣播接收器也是打開(kāi)著的。也就是說(shuō)哪怕app本身未啟動(dòng),該app訂閱的廣播在觸發(fā)時(shí)也會(huì)對(duì)它起作用。二、android四大組件總結(jié)4大組件的注冊(cè)4大基本組件都需要注冊(cè)才能使用,每個(gè)activity、service、contentprovider都需要在androidmanifest文件中進(jìn)行配置。androidmanifest文件中未進(jìn)行聲明的activity、服務(wù)以及內(nèi)容提供者將不為系統(tǒng)所見(jiàn),從而也就不可用。而broadcastreceiver廣播接收者的注冊(cè)分靜態(tài)注冊(cè)(在androidmanifest文件中進(jìn)行配置)和通過(guò)代碼動(dòng)態(tài)創(chuàng)建并以調(diào)用context.registerreceiver()的方式注冊(cè)至系統(tǒng)。需要注意的是在androidmanifest文件中進(jìn)行配置的廣播接收者會(huì)隨系統(tǒng)的啟動(dòng)而一直處于活躍狀態(tài),只要接收到感興趣的廣播就會(huì)觸發(fā)(即使程序未運(yùn)行)。4大組件的激活內(nèi)容提供者的激活:當(dāng)接收到contentresolver發(fā)出的請(qǐng)求后,內(nèi)容提供者被激活。而其它三種組件activity、服務(wù)和廣播接收器被一種叫做intent的異步消息所激活。4大組件的關(guān)閉內(nèi)容提供者僅在響應(yīng)contentresolver提出請(qǐng)求的時(shí)候激活。而一個(gè)廣播接收器僅在響應(yīng)廣播信息的時(shí)候激活。所以,沒(méi)有必要去顯式的關(guān)閉這些組件。activity關(guān)閉:可以通過(guò)調(diào)用它的finish。方法來(lái)關(guān)閉一個(gè)activity。服務(wù)關(guān)閉:對(duì)于通過(guò)startservice()方法啟動(dòng)的服務(wù)要調(diào)用context.stopservice()方法關(guān)閉服務(wù),使用bindservice()方法啟動(dòng)的服務(wù)要調(diào)用contex.unbindservice()方法關(guān)閉服務(wù)。android中的任務(wù)(activity棧)(a)任務(wù)其實(shí)就是activity的棧,它由一個(gè)或多個(gè)activity組成,共同完成一個(gè)完整的用戶體驗(yàn)。棧底的是啟動(dòng)整個(gè)任務(wù)的activity,棧頂?shù)氖钱?dāng)前運(yùn)行的用戶可以交互的activity,當(dāng)一個(gè)activity啟動(dòng)另外一個(gè)的時(shí)候,新的activity就被壓入棧,并成為當(dāng)前運(yùn)行的activity。而前一個(gè)activity仍保持在棧之中。當(dāng)用戶按下back鍵的時(shí)候,當(dāng)前activity出棧,而前一個(gè)恢復(fù)為當(dāng)前運(yùn)行的activity。棧中保存的其實(shí)是對(duì)象,棧中的activity永遠(yuǎn)不會(huì)重排,只會(huì)壓入或彈出。任務(wù)中的所有activit

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論