• <big id="r05a9"><nobr id="r05a9"><big id="r05a9"></big></nobr></big>
      1. 13396739763 / 13136206268

        APP開(kāi)發(fā) 小程序制作 軟件外包 網(wǎng)站建設

        我們的服務(wù)

        APP開(kāi)發(fā)、微信建設、軟件定制外包、小程序制作

        聯(lián)系電話(huà):13396739763 / 13136206268

        您當前位置> 主頁(yè) > 什么是android的四大組件

        什么是android的四大組件

        Android四大組件分別為activity、service、content provider、broadcast receiver。

        一、android四大組件詳解
        1、activity

        (1)一個(gè)Activity通常就是一個(gè)單獨的屏幕(窗口)。
        (2)Activity之間通過(guò)Intent進(jìn)行通信。
        (3)android應用中每一個(gè)Activity都必須要在A(yíng)ndroidManifest.xml配置文件中聲明,否則系統將不識別也不執行該Activity。
        2、service
        (1)service用于在后臺完成用戶(hù)指定的操作。service分為兩種:
        (a)started(啟動(dòng)):當應用程序組件(如activity)調用startService()方法啟動(dòng)服務(wù)時(shí),服務(wù)處于started狀態(tài)。
        (b)bound(綁定):當應用程序組件調用bindService()方法綁定到服務(wù)時(shí),服務(wù)處于bound狀態(tài)。
        (2)startService()與bindService()區別:
        (a)started service(啟動(dòng)服務(wù))是由其他組件調用startService()方法啟動(dòng)的,這導致服務(wù)的onStartCommand()方法被調用。當服務(wù)是started狀態(tài)時(shí),其生命周期與啟動(dòng)它的組件無(wú)關(guān),并且可以在后臺無(wú)限期運行,即使啟動(dòng)服務(wù)的組件已經(jīng)被銷(xiāo)毀。因此,服務(wù)需要在完成任務(wù)后調用stopSelf()方法停止,或者由其他組件調用stopService()方法停止。
        (b)使用bindService()方法啟用服務(wù),調用者與服務(wù)綁定在了一起,調用者一旦退出,服務(wù)也就終止,大有“不求同時(shí)生,必須同時(shí)死”的特點(diǎn)。
        (3)開(kāi)發(fā)人員需要在應用程序配置文件中聲明全部的service,使用<service></service>標簽。
        (4)Service通常位于后臺運行,它一般不需要與用戶(hù)交互,因此Service組件沒(méi)有圖形用戶(hù)界面。Service組件需要繼承Service基類(lèi)。Service組件通常用于為其他組件提供后臺服務(wù)或監控其他組件的運行狀態(tài)。
        3、content provider
        (1)android平臺提供了Content Provider使一個(gè)應用程序的指定數據集提供給其他應用程序。其他應用可以通過(guò)ContentResolver類(lèi)從該內容提供者中獲取或存入數據。
        (2)只有需要在多個(gè)應用程序間共享數據是才需要內容提供者。例如,通訊錄數據被多個(gè)應用程序使用,且必須存儲在一個(gè)內容提供者中。它的好處是統一數據訪(fǎng)問(wèn)方式。
        (3)ContentProvider實(shí)現數據共享。ContentProvider用于保存和獲取數據,并使其對所有應用程序可見(jiàn)。這是不同應用程序間共享數據的唯一方式,因為android沒(méi)有提供所有應用共同訪(fǎng)問(wèn)的公共存儲區。
        (4)開(kāi)發(fā)人員不會(huì )直接使用ContentProvider類(lèi)的對象,大多數是通過(guò)ContentResolver對象實(shí)現對ContentProvider的操作。
        (5)ContentProvider使用URI來(lái)唯一標識其數據集,這里的URI以content://作為前綴,表示該數據由ContentProvider來(lái)管理。
        4、broadcast receiver
        (1)你的應用可以使用它對外部事件進(jìn)行過(guò)濾,只對感興趣的外部事件(如當電話(huà)呼入時(shí),或者數據網(wǎng)絡(luò )可用時(shí))進(jìn)行接收并做出響應。廣播接收器沒(méi)有用戶(hù)界面。然而,它們可以啟動(dòng)一個(gè)activity或serice來(lái)響應它們收到的信息,或者用NotificationManager來(lái)通知用戶(hù)。通知可以用很多種方式來(lái)吸引用戶(hù)的注意力,例如閃動(dòng)背燈、震動(dòng)、播放聲音等。一般來(lái)說(shuō)是在狀態(tài)欄上放一個(gè)持久的圖標,用戶(hù)可以打開(kāi)它并獲取消息。
        (2)廣播接收者的注冊有兩種方法,分別是程序動(dòng)態(tài)注冊和AndroidManifest文件中進(jìn)行靜態(tài)注冊。
        (3)動(dòng)態(tài)注冊廣播接收器特點(diǎn)是當用來(lái)注冊的Activity關(guān)掉后,廣播也就失效了。靜態(tài)注冊無(wú)需擔憂(yōu)廣播接收器是否被關(guān)閉,只要設備是開(kāi)啟狀態(tài),廣播接收器也是打開(kāi)著(zhù)的。也就是說(shuō)哪怕app本身未啟動(dòng),該app訂閱的廣播在觸發(fā)時(shí)也會(huì )對它起作用。
        二、android四大組件總結:
        (1)4大組件的注冊

        4大基本組件都需要注冊才能使用,每個(gè)Activity、service、Content Provider都需要在A(yíng)ndroidManifest文件中進(jìn)行配置。AndroidManifest文件中未進(jìn)行聲明的activity、服務(wù)以及內容提供者將不為系統所見(jiàn),從而也就不可用。而broadcast receiver廣播接收者的注冊分靜態(tài)注冊(在A(yíng)ndroidManifest文件中進(jìn)行配置)和通過(guò)代碼動(dòng)態(tài)創(chuàng )建并以調用Context.registerReceiver()的方式注冊至系統。需要注意的是在A(yíng)ndroidManifest文件中進(jìn)行配置的廣播接收者會(huì )隨系統的啟動(dòng)而一直處于活躍狀態(tài),只要接收到感興趣的廣播就會(huì )觸發(fā)(即使程序未運行)。
        (2)4大組件的激活
        內容提供者的激活:當接收到ContentResolver發(fā)出的請求后,內容提供者被激活。而其它三種組件activity、服務(wù)和廣播接收器被一種叫做intent的異步消息所激活。
        (3)4大組件的關(guān)閉
        內容提供者僅在響應ContentResolver提出請求的時(shí)候激活。而一個(gè)廣播接收器僅在響應廣播信息的時(shí)候激活。所以,沒(méi)有必要去顯式的關(guān)閉這些組件。Activity關(guān)閉:可以通過(guò)調用它的finish()方法來(lái)關(guān)閉一個(gè)activity。服務(wù)關(guān)閉:對于通過(guò)startService()方法啟動(dòng)的服務(wù)要調用Context.stopService()方法關(guān)閉服務(wù),使用bindService()方法啟動(dòng)的服務(wù)要調用Contex.unbindService()方法關(guān)閉服務(wù)。
        (4)android中的任務(wù)(activity棧)
        (a)任務(wù)其實(shí)就是activity的棧,它由一個(gè)或多個(gè)Activity組成,共同完成一個(gè)完整的用戶(hù)體驗。棧底的是啟動(dòng)整個(gè)任務(wù)的Activity,棧頂的是當前運行的用戶(hù)可以交互的Activity,當一個(gè)activity啟動(dòng)另外一個(gè)的時(shí)候,新的activity就被壓入棧,并成為當前運行的activity。而前一個(gè)activity仍保持在棧之中。當用戶(hù)按下BACK鍵的時(shí)候,當前activity出棧,而前一個(gè)恢復為當前運行的activity。棧中保存的其實(shí)是對象,棧中的Activity永遠不會(huì )重排,只會(huì )壓入或彈出。
        (b)任務(wù)中的所有activity是作為一個(gè)整體進(jìn)行移動(dòng)的。整個(gè)的任務(wù)(即activity棧)可以移到前臺,或退至后臺。
        (c)Android系統是一個(gè)多任務(wù)(Multi-Task)的操作系統,可以在用手機聽(tīng)音樂(lè )的同時(shí),也執行其他多個(gè)程序。每多執行一個(gè)應用程序,就會(huì )多耗費一些系統內存,當同時(shí)執行的程序過(guò)多,或是關(guān)閉的程序沒(méi)有正確釋放掉內存,系統就會(huì )覺(jué)得越來(lái)越慢,甚至不穩定。為了解決這個(gè)問(wèn)題,Android引入了一個(gè)新的機制,即生命周期(Life Cycle)。

        嘉興雷鳥(niǎo)是一家集企業(yè)軟件開(kāi)發(fā),WEB網(wǎng)站建設,移動(dòng)APP制作等綜合型的互聯(lián)網(wǎng)公司,為嘉興顧客提供一站式的企業(yè)軟件開(kāi)發(fā),安卓app開(kāi)發(fā),ios開(kāi)發(fā)服務(wù),同時(shí)為嘉興企業(yè)提供全面移動(dòng)互聯(lián)軟件技術(shù)解決方案,是嘉興知名的綜合型APP軟件外包開(kāi)發(fā)公司。根據前期調研方案和客戶(hù)實(shí)際需求,以專(zhuān)業(yè)獨到的設計理念、精益求精的技術(shù)精神、嚴格完善的品控系統,為嘉興每一位客戶(hù)提供專(zhuān)屬的移動(dòng)互聯(lián)軟件技術(shù)解決方案。經(jīng)過(guò)不斷積累,嘉興雷鳥(niǎo)陸續推出視頻直播APP、電商商城APP、P2P網(wǎng)貸APP、智能硬件APP開(kāi)發(fā)、移動(dòng)APP開(kāi)發(fā)、微信公眾平臺開(kāi)發(fā)、一元購APP、智慧社區服務(wù)APP、生活服務(wù)O2O系統APP等各類(lèi)APP產(chǎn)品,為嘉興各行企業(yè)向移動(dòng)互聯(lián)網(wǎng)轉型奠定了堅實(shí)基礎。在激烈的市場(chǎng)競爭中,嘉興雷鳥(niǎo)創(chuàng )造了嘉興軟件定制開(kāi)發(fā)行業(yè)的卓越口碑,是具有更高品質(zhì)的移動(dòng)互聯(lián)網(wǎng)軟件技術(shù)定制服務(wù)商。

        聲明:文章來(lái)源于互聯(lián)網(wǎng)!

        企業(yè)名稱(chēng):嘉興雷鳥(niǎo)軟件科技有限公司

        聯(lián)系電話(huà):13396739763 13136206268 (節假日均可撥打)

        售前咨詢(xún)QQ:點(diǎn)擊這里給我發(fā)消息

        技術(shù)咨詢(xún)QQ:點(diǎn)擊這里給我發(fā)消息

        所在地址: 浙江省嘉興市城南路1539號創(chuàng )業(yè)大廈

        網(wǎng)址:fj256.com

        主營(yíng)行業(yè): APP開(kāi)發(fā) / 蘋(píng)果手機APP開(kāi)發(fā) / 安卓手機開(kāi)發(fā) / 軟件定制 / 平板應用開(kāi)發(fā)/軟件定制/微信開(kāi)發(fā)/微網(wǎng)站建設/微網(wǎng)站設計/嘉興微網(wǎng)站建設/微網(wǎng)站  專(zhuān)業(yè)做高端網(wǎng)站建設,網(wǎng)站設計,網(wǎng)站改版,網(wǎng)站維護,微網(wǎng)站建設,微網(wǎng)站制作,嘉興網(wǎng)站建設,嘉興網(wǎng)站設計,嘉興網(wǎng)站制作,軟件開(kāi)發(fā),APP應用,嘉興微官網(wǎng)制作,動(dòng)畫(huà)制作,域名注冊,空間托管,企業(yè)郵箱注冊,樣本宣傳冊印刷制作,400電話(huà)做網(wǎng)站業(yè)務(wù)

        相關(guān)案例查看更多

        三级国产国语三级在线蔓延|欧美人与动人物牲交|欧美A级毛欧美1级A大片免费播|国产无套乱子伦精彩|91香蕉高清国产线观看免费
      2. <big id="r05a9"><nobr id="r05a9"><big id="r05a9"></big></nobr></big>