久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

android四大組件

 君王之王 2015-12-15

標(biāo)簽: 四大組件

android四大組件分別為activity,、servicecontent provider,、broadcast receiver,。

一、android四大組件詳解

1,、activity

1)一個(gè)Activity通常就是一個(gè)單獨(dú)的屏幕(窗口),。

2Activity之間通過(guò)Intent進(jìn)行通信。

3android應(yīng)用中每一個(gè)Activity都必須要在AndroidManifest.xml配置文件中聲明,,否則系統(tǒng)將不識(shí)別也不執(zhí)行該Activity,。

2service

1service用于在后臺(tái)完成用戶(hù)指定的操作,。service分為兩種:

astarted(啟動(dòng)):當(dāng)應(yīng)用程序組件(如activity)調(diào)用startService()方法啟動(dòng)服務(wù)時(shí),,服務(wù)處于started狀態(tài)。

bbound(綁定):當(dāng)應(yīng)用程序組件調(diào)用bindService()方法綁定到服務(wù)時(shí),,服務(wù)處于bound狀態(tài),。

(2)startService()bindService()區(qū)別:

(a)started service(啟動(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)被銷(xiāo)毀,。因此,,服務(wù)需要在完成任務(wù)后調(diào)用stopSelf()方法停止,或者由其他組件調(diào)用stopService()方法停止,。

(b)使用bindService()方法啟用服務(wù),,調(diào)用者與服務(wù)綁定在了一起,調(diào)用者一旦退出,,服務(wù)也就終止,,大有“不求同時(shí)生,必須同時(shí)死”的特點(diǎn),。

(3)開(kāi)發(fā)人員需要在應(yīng)用程序配置文件中聲明全部的service,,使用<service></service>標(biāo)簽。

(4)Service通常位于后臺(tái)運(yùn)行,,它一般不需要與用戶(hù)交互,,因此Service組件沒(méi)有圖形用戶(hù)界面。Service組件需要繼承Service基類(lèi),。Service組件通常用于為其他組件提供后臺(tái)服務(wù)或監(jiān)控其他組件的運(yùn)行狀態(tài),。

3content provider

1android平臺(tái)提供了Content Provider使一個(gè)應(yīng)用程序的指定數(shù)據(jù)集提供給其他應(yīng)用程序,。其他應(yīng)用可以通過(guò)ContentResolver類(lèi)從該內(nèi)容提供者中獲取或存入數(shù)據(jù),。

2)只有需要在多個(gè)應(yīng)用程序間共享數(shù)據(jù)是才需要內(nèi)容提供者。例如,,通訊錄數(shù)據(jù)被多個(gè)應(yīng)用程序使用,,且必須存儲(chǔ)在一個(gè)內(nèi)容提供者中。它的好處是統(tǒng)一數(shù)據(jù)訪問(wèn)方式,。

3ContentProvider實(shí)現(xiàn)數(shù)據(jù)共享,。ContentProvider用于保存和獲取數(shù)據(jù),并使其對(duì)所有應(yīng)用程序可見(jiàn),。這是不同應(yīng)用程序間共享數(shù)據(jù)的唯一方式,,因?yàn)?span style="font-family: 'Times New Roman';">android沒(méi)有提供所有應(yīng)用共同訪問(wèn)的公共存儲(chǔ)區(qū)。

4)開(kāi)發(fā)人員不會(huì)直接使用ContentProvider類(lèi)的對(duì)象,,大多數(shù)是通過(guò)ContentResolver對(duì)象實(shí)現(xiàn)對(duì)ContentProvider的操作,。

5ContentProvider使用URI來(lái)唯一標(biāo)識(shí)其數(shù)據(jù)集,這里的URIcontent://作為前綴,,表示該數(shù)據(jù)由ContentProvider來(lái)管理,。

4,、broadcast receiver

1)你的應(yīng)用可以使用它對(duì)外部事件進(jìn)行過(guò)濾,,只對(duì)感興趣的外部事件(如當(dāng)電話呼入時(shí),,或者數(shù)據(jù)網(wǎng)絡(luò)可用時(shí))進(jìn)行接收并做出響應(yīng)。廣播接收器沒(méi)有用戶(hù)界面,。然而,,它們可以啟動(dòng)一個(gè)activityserice來(lái)響應(yīng)它們收到的信息,或者用NotificationManager來(lái)通知用戶(hù),。通知可以用很多種方式來(lái)吸引用戶(hù)的注意力,,例如閃動(dòng)背燈、震動(dòng),、播放聲音等,。一般來(lái)說(shuō)是在狀態(tài)欄上放一個(gè)持久的圖標(biāo),用戶(hù)可以打開(kāi)它并獲取消息,。

2)廣播接收者的注冊(cè)有兩種方法,,分別是程序動(dòng)態(tài)注冊(cè)和AndroidManifest文件中進(jìn)行靜態(tài)注冊(cè)。

3)動(dòng)態(tài)注冊(cè)廣播接收器特點(diǎn)是當(dāng)用來(lái)注冊(cè)的Activity關(guān)掉后,,廣播也就失效了,。靜態(tài)注冊(cè)無(wú)需擔(dān)憂(yōu)廣播接收器是否被關(guān)閉,只要設(shè)備是開(kāi)啟狀態(tài),,廣播接收器也是打開(kāi)著的,。也就是說(shuō)哪怕app本身未啟動(dòng),該app訂閱的廣播在觸發(fā)時(shí)也會(huì)對(duì)它起作用,。

二,、android四大組件總結(jié):

14大組件的注冊(cè)

4大基本組件都需要注冊(cè)才能使用,每個(gè)Activity,、service,、Content Provider都需要在AndroidManifest文件中進(jìn)行配置。AndroidManifest文件中未進(jìn)行聲明的activity,、服務(wù)以及內(nèi)容提供者將不為系統(tǒng)所見(jiàn),,從而也就不可用。而broadcast receiver廣播接收者的注冊(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)行)。

24大組件的激活

內(nèi)容提供者的激活:當(dāng)接收到ContentResolver發(fā)出的請(qǐng)求后,,內(nèi)容提供者被激活,。而其它三種組件activity、服務(wù)和廣播接收器被一種叫做intent的異步消息所激活,。

34大組件的關(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ù),。

4android中的任務(wù)(activity棧)

a)任務(wù)其實(shí)就是activity的棧,,它由一個(gè)或多個(gè)Activity組成,共同完成一個(gè)完整的用戶(hù)體驗(yàn),。棧底的是啟動(dòng)整個(gè)任務(wù)的Activity,,棧頂?shù)氖钱?dāng)前運(yùn)行的用戶(hù)可以交互的Activity,當(dāng)一個(gè)activity啟動(dòng)另外一個(gè)的時(shí)候,,新的activity就被壓入棧,,并成為當(dāng)前運(yùn)行的activity。而前一個(gè)activity仍保持在棧之中,。當(dāng)用戶(hù)按下BACK鍵的時(shí)候,,當(dāng)前activity出棧,而前一個(gè)恢復(fù)為當(dāng)前運(yùn)行的activity,。棧中保存的其實(shí)是對(duì)象,,棧中的Activity永遠(yuǎn)不會(huì)重排,只會(huì)壓入或彈出,。

b)任務(wù)中的所有activity是作為一個(gè)整體進(jìn)行移動(dòng)的,。整個(gè)的任務(wù)(即activity棧)可以移到前臺(tái),或退至后臺(tái),。

(c)Android系統(tǒng)是一個(gè)多任務(wù)(Multi-Task)的操作系統(tǒng),,可以在用手機(jī)聽(tīng)音樂(lè)的同時(shí),也執(zhí)行其他多個(gè)程序,。每多執(zhí)行一個(gè)應(yīng)用程序,,就會(huì)多耗費(fèi)一些系統(tǒng)內(nèi)存,當(dāng)同時(shí)執(zhí)行的程序過(guò)多,,或是關(guān)閉的程序沒(méi)有正確釋放掉內(nèi)存,,系統(tǒng)就會(huì)覺(jué)得越來(lái)越慢,甚至不穩(wěn)定,。為了解決這個(gè)問(wèn)題,,Android引入了一個(gè)新的機(jī)制,即生命周期(Life Cycle),。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多